有关编程语言和环境的正式或权威规范的复杂性的问题。
考虑这个场景: #包括 #包括 #包括 #包括 结构体S{ 对齐(std::uint64_t) 对齐( std::uint32_t) std::...
一些 SO 帖子告诉我们,隐式生命周期对象创建已在 C++20 中引入,事实上,我在旧版 C++ 的草稿中找不到提及它。 然而 cppreference 并不表明...
以下代码在 Linux x64 上使用 gcc 和 clang 编译时不会发出任何警告: #包括 #包括 无效 foo(无效); 无效 foo(无效); 无效 foo(voi...
他们经常向 SO 提出有关类型双关操作有效性的问题。例如,我最近为一篇文章做出了贡献:Is reinterpret_cast from char* to uint32_t* undefined behavior in CPP?...
考虑这个例子: #包括 #包括 #包括 结构自旋锁{ std::atomic 状态; 无效锁(){ 布尔预期 = false; ...
考虑下面的代码,C的MIL内部的临时对象什么时候会被销毁?当词法上包含临时对象创建的完整表达式时,临时对象将被破坏
Clang 拒绝以下程序: struct g { static constexpr bool b = true; }; struct h : g { static constexpr bool b = b; }; // clang 不行,gcc 可以,msvc 可以 static_assert(h::b); 我对此的看法...
考虑以下 C 程序(基于本文的示例): #包括 短 g(int *p, 短 *q) { 短z = *q; *p = 10;返回z; } int 主函数(无效){ 工会
Clang 拒绝以下代码: #包括 结构体 k { 静态 void f(); }; // clang 不行,gcc 可以,msvc 可以 static_assert(std::same_as); 哪个...
我正在尝试理解C18标准第6.5节第6段和第7段的确切含义。 第 6 段定义了对象的“有效类型”,并在“An
假设我进行了预处理器检查: #如果(-6 & 5) #error“2 的补码有符号整数” #endif 如果我从二进制补码机交叉编译,会发生什么......
通过 using-directive 或 using-declaration 引入的名称可以用作友元声明的详细类型说明符吗?
为什么gcc、clang和msvc能成功编译以下代码? (神箭) 命名空间实现 { A 级; } // 命名空间实现 命名空间 API { 使用命名空间实现; } // 命名空间 API B级 { ...
以下计划是否应该被拒绝?铿锵似乎接受了。 模板 概念 c = 需要 { T::n; }; 结构z; constexpr bool b(auto...) { return c; } 结构 z { ...
JLS 4.5.2: 如果 C 参数化中的任何类型参数是 通配符,然后: • C 中字段、方法和构造函数的类型 是字段的类型,m...
C++ 标准(或其他值得信赖的来源)中是否有任何正式声明要求迭代器在取消引用两次时返回相同的值? 我发现 equal_preservation 没有
我今天在工作中遇到了一个关于结构体中 const 传播的问题。 当我遇到两个不同的编译器不同意的问题时,我试图向旧代码添加一些 const 正确性......
在第 12 页UML 2.5.1 规范文档 190 中,约束 ParameterSet::two_parameter_sets 定义如下: • 两个参数集 两个 ParameterSet 不能具有完全相同的
#包括 #包括 结构体A; 使用 B = std::variant; 结构体A { std::向量 v; }; int main() { 一个一个; } 它使用 GCC、clang 和 MS 进行编译...
[intro.races] p16 说: 如果原子对象 M 的值计算 A 发生在 M 的值计算 B 之前,并且 A 从 M 上的副作用 X 获取其值,则 B 计算的值是 e...
我不明白Java语言规范中的这段话: JLS 4.9: 交集类型的值是那些作为值的对象 所有类型 Ti 的 1 ≤ i ≤ n。 至...