this 指针不能在构造函数中使用别名:
我正在学习C ++的继承。然后我遇到以下语句: 换句话说,该指针在构造函数中不能被别名: extern struct D d; struct D { D(int a) : a(a), b(d.a) {}…
关于字符集和映射的一些问题(翻译阶段1)
以下问题是关于字符集(C11,5.2.1 字符集)和映射(C11,5.1.1.2 翻译阶段,1)。 列表: 作为扩展的源字符集是否可以包含控制字符,代表水平制表符…
易失性指针的迭代器特征
该代码 #include #include static_assert(std::is_same_v::value_type, volatile int>); 在最新的GCC和Clang上编译,但在MSVC 2019上失败了,这似乎删…
如何将多个先前声明解析为带有 extern 的新声明?
第三 x 应该参考以下内容: #include static char x = '1'; int main(void) { char x = '2'; { extern char x; printf("%c\n", x); } } 此答案和: in…
为什么以及如何c++隐式转换规则将模板转换函数与非策略区分开?
我正在尝试理解C ++中的隐式转换规则,以及为什么在以下减少情况下的两个隐式转换有所不同: // A templated struct. template struct A {}; // A tem…
为什么const在``const t&'t t rvalue参考''中丢失了?
我正在开发一个模板类,并且给定传入类型 T 模板需要映射到“安全”常量引用。 (这本质上是为了避免在调用时将变异能力交给包装函数;请参阅 此处查…
为什么delete []语法存在于C++?
每当有人问一个有关 delete [] 的问题时,总会有一个相当一般的“这就是C ++这样做的方式,请使用 delete [] ”的响应。来自香草c背景的来自我不明白…
拼接物理源线以形成逻辑源线:编译器产生不同的输出
示例代码( t6.c ): xxx \ #error Incocations&输出: # on Windows $ gcc -c -std=c11 -pedantic -Wall -Wextra -E t6.c xxx #error # on Win…
临时初始化和参考初始化
我想了解如何引用初始化。例如,我们看一个典型的例子。 double val = 4.55; const int &ref = val; 我可以想到上面代码片段中发生的事情的两种可能性…
转换函数的显式调用和隐式调用有什么区别?
考虑这个例子: struct A{ template operator T(); // #1 }; struct B:A{ template operator U&&(); // #2 }; int main(){ B b; int a = b; // #3 b.o…
是否通过工会定义的行为进行原子类型?
< typedef union { uint32_t i; float f; } MyUnion; MyUnion u; u.f = 4.2; print("%"PRIu32, u.i); // defined behaviour 如果用于读取联合对象…
对返回类型的要求可能具有某些成员函数Sfinae在功能的翻译单元中的要求?
隐含地称为destructor? 从为什么 在呼叫者要求他们到(或在常规位置?)的情况下,构建其结果。考虑到这一点,这让我感到惊讶: #include struct X; …
有效的成员指针可以与 NULL 指针具有相同的值吗?
根据 ABI, 指向数据成员的指针是相对于数据成员基地址的偏移量 包含它的类对象... NULL 指针表示为 -1 但是,根据 c++ 标准(我有修订版 4296,它位…
我可以参考初始化列表的先前成员吗?
假设我想引用我已经定义的 initializer_list 的成员。我可以做吗? 此代码编译并给出预期的结果:“13 55”在 Visual Studio 和 gcc 中,我只想知道它…