language-lawyer 相关问题

有关编程语言和环境的正式或权威规范的复杂性的问题。

哪些操作会触发给定位置的对象生命周期结束?

考虑这个场景: #包括 #包括 #包括 #包括 结构体S{ 对齐(std::uint64_t) 对齐( std::uint32_t) std::...

回答 1 投票 0

隐式生命周期对象创建在 C++20 之前适用吗?

一些 SO 帖子告诉我们,隐式生命周期对象创建已在 C++20 中引入,事实上,我在旧版 C++ 的草稿中找不到提及它。 然而 cppreference 并不表明...

回答 1 投票 0

多个相同原型合法吗?

以下代码在 Linux x64 上使用 gcc 和 clang 编译时不会发出任何警告: #包括 #包括 无效 foo(无效); 无效 foo(无效); 无效 foo(voi...

回答 1 投票 0

在对象的低级创建/销毁下保证价值表示的保存(如果有)

他们经常向 SO 提出有关类型双关操作有效性的问题。例如,我最近为一篇文章做出了贡献:Is reinterpret_cast from char* to uint32_t* undefined behavior in CPP?...

回答 1 投票 0

后来获取自旋锁的线程能否在时间轴上先发生?

考虑这个例子: #包括 #包括 #包括 结构自旋锁{ std::atomic 状态; 无效锁(){ 布尔预期 = false; ...

回答 1 投票 0

成员初始值设定项列表中临时的构造和销毁顺序

考虑下面的代码,C的MIL内部的临时对象什么时候会被销毁?当词法上包含临时对象创建的完整表达式时,临时对象将被破坏

回答 1 投票 0

什么时候基类成员被视为隐藏?

Clang 拒绝以下程序: struct g { static constexpr bool b = true; }; struct h : g { static constexpr bool b = b; }; // clang 不行,gcc 可以,msvc 可以 static_assert(h::b); 我对此的看法...

回答 0 投票 0

C 中的严格别名和联合

考虑以下 C 程序(基于本文的示例): #包括 短 g(int *p, 短 *q) { 短z = *q; *p = 10;返回z; } int 主函数(无效){ 工会

回答 1 投票 0

静态成员函数上与 decltype 的差异

Clang 拒绝以下代码: #包括 结构体 k { 静态 void f(); }; // clang 不行,gcc 可以,msvc 可以 static_assert(std::same_as); 哪个...

回答 1 投票 0

C 中有效类型限制的澄清

我正在尝试理解C18标准第6.5节第6段和第7段的确切含义。 第 6 段定义了对象的“有效类型”,并在“An

回答 2 投票 0

预处理器算法是否应该与编译的目标架构相匹配?

假设我进行了预处理器检查: #如果(-6 & 5) #error“2 的补码有符号整数” #endif 如果我从二进制补码机交叉编译,会发生什么......

回答 1 投票 0

通过 using-directive 或 using-declaration 引入的名称可以用作友元声明的详细类型说明符吗?

为什么gcc、clang和msvc能成功编译以下代码? (神箭) 命名空间实现 { A 级; } // 命名空间实现 命名空间 API { 使用命名空间实现; } // 命名空间 API B级 { ...

回答 1 投票 0

类型何时完成?

以下计划是否应该被拒绝?铿锵似乎接受了。 模板 概念 c = 需要 { T::n; }; 结构z; constexpr bool b(auto...) { return c; } 结构 z { ...

回答 1 投票 0

Java 中内部泛型类的类型参数

JLS 4.5.2: 如果 C 参数化中的任何类型参数是 通配符,然后: • C 中字段、方法和构造函数的类型 是字段的类型,m...

回答 1 投票 0

C++ 迭代器解引用相等性保存

C++ 标准(或其他值得信赖的来源)中是否有任何正式声明要求迭代器在取消引用两次时返回相同的值? 我发现 equal_preservation 没有

回答 1 投票 0

C 标准 - 结构体成员的 const 资格

我今天在工作中遇到了一个关于结构体中 const 传播的问题。 当我遇到两个不同的编译器不同意的问题时,我试图向旧代码添加一些 const 正确性......

回答 1 投票 0

ParameterSet 中的 UML 参数识别

在第 12 页UML 2.5.1 规范文档 190 中,约束 ParameterSet::two_parameter_sets 定义如下: • 两个参数集 两个 ParameterSet 不能具有完全相同的

回答 1 投票 0

A::A 未定义行为变体的向量成员吗?

#包括 #包括 结构体A; 使用 B = std::variant; 结构体A { std::向量 v; }; int main() { 一个一个; } 它使用 GCC、clang 和 MS 进行编译...

回答 2 投票 0

读读一致性规则能否根据读取值推断出修改顺序?

[intro.races] p16 说: 如果原子对象 M 的值计算 A 发生在 M 的值计算 B 之前,并且 A 从 M 上的副作用 X 获取其值,则 B 计算的值是 e...

回答 1 投票 0

Java 中交集类型的值是什么?

我不明白Java语言规范中的这段话: JLS 4.9: 交集类型的值是那些作为值的对象 所有类型 Ti 的 1 ≤ i ≤ n。 至...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.