language-lawyer 相关问题

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

与类型同名的变量 - 哪个编译器是正确的?

在此代码中: typedef int foo; 结构S { 富富; }; int main() {} 所有版本的 clang -std=c++14 都接受此代码,但是所有版本的 g++ -std=c++14 报告: 5:错误:声明o...

回答 3 投票 0

理解继承构造函数初始化行为的问题

我有这个例子:(演示) 结构体 B1 { B1(int i): a(i) { std::cout << "B1" << std::endl; }; int a; }; struct B2 { int b; B2() { std::cout << "B2&q...

回答 1 投票 0

延迟模板实例化中的编译器分歧

当我的基类没有实现成员函数时,我想触发 static_assert。 #包括 模板 结构AlwaysFalse:公共std :: false_type {};

回答 1 投票 0

对从分配器返回的指针进行指针算术是否格式良好?

我知道这个问题过去已经被问过并得到了一些回答。 然而,我对一个尚未弄清楚的细节有疑问(或者至少我找不到质量保证)。

回答 1 投票 0

为什么 fpos_t * 可以为 FILE * 起别名?

在现代 C 语言中,Jens Gustedt 指出: 排除字符类型后,只有相同基类型的指针才可以使用别名。 但后来我在 C 斯坦的附件 B 中找到了 fgetpos() 的声明...

回答 1 投票 0

<algorithms>操作有迭代器失效规则吗?

例如,在C++20向量中我们有erase和erase_if。它们的效果分别根据remove和remove_if定义(对于擦除[vector.erasure/1]): 效果: 相当于: 自动它 = r...

回答 2 投票 0

一个类派生自同一基类,并且其第一个成员具有派生自同一基类的类型。班级是标准布局吗?

据我所知,标准布局类的一个属性是标准布局对象的地址等于其初始成员的地址。我用 g++ 和 clang++ 测试了以下代码,但发现

回答 1 投票 0

这个类型是标准布局类吗?

据我所知,标准布局类的一个属性是标准布局对象的地址等于其初始成员的地址。我用 g++ 和 clang++ 测试了以下代码,但发现

回答 1 投票 0

左值到右值的转换是否不适用于通过值传递的空类对象

我编写了以下程序,其中如果一个类具有非静态数据成员,那么当该类型的对象作为参数按值传递时,则它不能在 constexpr 上下文中使用。出海后...

回答 1 投票 0

为什么显式捕获 constexpr 变量不起作用,而不捕获它却有效

我编写了以下具有两个 lambda 的代码。其中一个明确捕获了 i,而另一个则没有。注意 i 是 constexpr,因此我们不需要显式捕获它。 我的问题是为什么 func(la...

回答 1 投票 0

Lambda constexpr 在 msvc 中有效,但在 gcc 中无效

我编写了以下程序,该程序使用 msvc 编译,但不使用 gcc 和 clang 编译。 演示 int main() { constexpr auto func = []()constexpr { return 1; }; auto i = []{return func();}; } 我...

回答 1 投票 0

GCC 和 Clang 在持续评估方面表现不同

我观察到 gcc 和 clang 在持续评估上下文方面存在不一致。我玩过不同的情况: #包括 #包括 反对...

回答 1 投票 0

是否可以为枚举类枚举器添加别名?

给定一个 C++11 枚举类,嵌套在几个长而丑陋的命名空间中: 名称空间 又长又丑 { 枚举类 颜色 { 红色的, 绿色的, 蓝色的 }; } ...

回答 2 投票 0

右值引用 Cpp17MoveConstructible 吗?

右值引用满足 Cpp17MoveConstructible 要求吗? 为此,在表达式 T u = rv; 中,u 需要“等于”rv。如果 T 是右值引用...

回答 1 投票 0

基于范围的for循环:为什么不执行普通查找?

在基于范围的情况下,当 begin-expr 和 end-expr 分别为 begin(range) 和 end(range) 时,不会使用普通查找来查找名称 begin 和 end。仅执行 ADL。请参阅 C++23 [stmt.ranged]#1.3....

回答 1 投票 0

覆盖 std::string 的空终止符是否合法?

在 C++11 中,我们知道 std::string 保证是连续的且以 null 终止(或者更迂腐地,以 charT() 终止,在 char 的情况下是空字符 0)。 我在那里...

回答 4 投票 0

使用常量表达式作为使用函数参数的模板参数:哪个编译器是正确的?

我有这段代码: 模板 结构常量 { constexpr 运算符 int() const noexcept { return V; } }; 模板 结构体数组 { }; 自动

回答 1 投票 0

C 编译器遵循“`restrict` 的正式定义”吗?

考虑以下代码: 外部 int A[2]; /* 只是返回 `p`。 */ extern int *identity(int *p); int f(int *限制 p) { int *q = 身份(p); /* `q` 变成“基于” `p` */ ...

回答 1 投票 0

为什么受保护模式案例标签中使用的变量必须是最终/有效最终的? (Java 21)

借助 Java 21 的新功能,我们拥有更好的模式匹配。有了这些功能,我们就有了受保护的模式案例标签,可以为案例标签定义一个模式保护,看起来像

回答 1 投票 0

gcc 和 clang 在持续评估方面表现不同

我观察到 gcc 和 clang 在持续评估上下文方面存在不一致。我玩过不同的情况: #包括 #包括 反对...

回答 1 投票 0

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