lambda 到函数指针转换的稳定性和唯一性
无捕获 lambda 可以转换为具有与 lambda 表达式相同的参数列表的函数指针。 我想知道这种转换是否保证稳定,即给定一个无捕获的 lambda 表达式,标准…
比较无效指针的行为的澄清
Closed. This question needs details or clarity. It is not currently accepting answers. 想要改进这个问题?通过编辑这篇文章添加详细信息并澄清…
typedef(指向)VLA 是否需要计算大小表达式?
typedef VLA 是否需要计算大小表达式? int f(void); int main(void) { typedef int (T) [ f() ]; // is f required to be evaluated ? T x; return s…
缺少具有非保留标识符的对象/函数的定义是否会导致诊断?
示例代码: void accept(int x); int main(void) { accept(0); return 0; } 调用: $ gcc t719.c -std=c11 -pedantic -Wall -Wextra $ clang t719.c -…
在 C++ 中通过 `const` 值捕获异常。编译器存在分歧
在以下程序中,结构体 A 具有复制构造函数 A(const A&) 和来自左值引用 A(A&) 的构造函数>。然后抛出一个 A 对象,然后将其捕获为 const A: #include…
_Alignof 与变长数组类型的操作数:标准中是否存在矛盾?
Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers. 这个问题是由拼写错误或无法再重现的…
如何修复 gcc 警告“友元声明声明非模板函数”
所以我这里有一些使用 gcc、clang 和 msvc 进行编译的代码: #include #include struct c_class; template struct holder { friend auto adl_lookup(h…
为什么不能通过直接初始化语法来初始化类数据成员?
我很好奇为什么类数据成员不能使用 () 语法初始化?考虑下面的例子: #include class test { public: void fun() { int a(3); std::cout<
友元函数名称的名称查找规则是什么?
根据 [namespace.memdef]#3: 如果非本地类中的friend声明首先声明一个类、函数、类模板或函数模板,则该friend是最内部封闭命名空间的成员。 我认为…
有关 C11 临时生命周期规则和未定义行为的更多问题
我正在努力寻找可能与 相关的另一个示例的明确答案来自 C11 / ISO/IEC 9899:2018 的临时生命周期规则,我在这里再次引用该规则以方便搜索: 具有结构…
intabs(int) 与 doubleabs(double)
我想从 C++ 标准的角度(GCC 9.3)了解以下代码的行为,C++20): #include template struct type_tester; int main() { type_tester{}; // int abs(in…
优化器可以假设浮点不是 NaN 吗?
编译器可以做出一些会导致未定义行为的假设(例如假设加法不会溢出)。他们可以对浮点 NaN 做出这样的假设吗? 例如: double a = some_calc(); doubl…
需要帮助理解 \n、\b 和 \r 如何呈现 printf 输出
我用 C 语言编写了以下程序,当我运行它时,我对输出感到惊讶。 这是程序 int main() { printf("\nab"); printf("\bsi"); printf("\rha"); } 输出是:…
全 const 类的 `T&` 和 `const T&` 之间的区别
假设我有一个这样的类: class Foo : boost::noncopyable { public: Foo(int a, int b); const int something; const int something_else; const std:…