语言-Lawyer 问答列表

为什么迭代器需要默认可构造

作者:sbi 提问时间:3/3/2015

正向、双向和随机访问类别的迭代器需要是默认可构造的。 为什么会这样,为什么输入和输出运算符不必是默认可构造的?...

自动存储持续时间结构初始化

作者:Karolis Milieška 提问时间:9/6/2018

其中一些可能是重复的,但我对此感到抱歉。 假设我有这个:struct struct foo { int a; int b; int c; }; 1. 如果类型对象以具有自动存储持续时间...

C - 使用 memset undefined 设置后读取 _Bool,是否定义了实现?

作者:Jesse 提问时间:3/18/2022

在 ISO 标准 C 中,我的理解是,没有什么可以真正确定_Bool的表示,但它确实说: “_Bool 足够大,可以容纳值 0 和 1” “当任何标量值转换为 _Bool 时,如果该值比较等于 0,...

定义为实现定义行为的操作是否可以具有多种可能的执行?

作者:xmh0511 提问时间:7/11/2022

[conv.fpint] p2 说 如果要转换的值在可以表示的值范围内,但该值不能准确表示,则它是实现定义的下一个较低或较高可表示值的选择。 [intro.abstract] p2 说 在本文档...

一个可变 constexpr 变量可以在 C++ 中初始化另一个变量吗?

作者:Fedor 提问时间:11/21/2022

C++ 标准允许每个缺陷报告 1688 的变量,该问题已于 2013 年 9 月解决:constexpr volatile 该组合是有意允许的,在某些情况下可用于强制恒定初始化。 看起来意图是只允...

在依赖模板名称之前使用 template 关键字

作者:303 提问时间:9/20/2023

考虑到下面的代码示例,我希望必须在此处使用关键字来指导编译器将变量视为模板。但是,MSVC 拒绝使用关键字,而 Clang 和 GCC 实际上需要它。在这种情况下,C++ 标准中的哪条特定规则强制或禁...

您是否曾经需要将 typename 和 template 放在一起?

作者:Jan Schultke 提问时间:6/19/2023

我很好奇是否存在一种情况,它本身并不能充分消除歧义。 使用消歧器时,以下 qualified-id 必须是类型。 例如,在以下代码中:typenametypename template <typen...

直接通过 memcpy() 或 std::bit_cast() 创建的工会的活跃成员?

作者:user541686 提问时间:10/1/2023

请考虑以下代码: #include <stdint.h> #include <string.h> #include <bit> union U { uint64_t ull; int32_t ...

作者对 optional&lt;bool&gt; 的基于联合的实现是否在 P2641 中定义得当?

作者:Jan Schultke 提问时间:9/23/2023

在 P2641r4: Checking a union alternative is active 中,作者提供了一个 的实现作为激励示例,并声称这是正确的格式。optional<bool> str...

即使被访问的成员充分对齐,访问未对齐联盟的成员是否为未定义的行为?

作者:user16217248 提问时间:9/28/2023

在 C 中,如果我尝试通过未对齐的指针访问类型,可能会发生不好的事情: int x[2]; // Assuming CHAR_BIT == 8 && sizeof(int) == 4 *(int *...


共12条 当前第1页