language-lawyer 相关问题

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

在 C 中将魔术地址转换为指针是否违反了严格的别名规则?

我知道以下代码违反了严格的别名规则 int 对象 = 10; int *pi = &object; // 好的 浮点数*pf = (浮点数*)pi; // 好的 浮动 f = *pf; // 未定义的行为 在

回答 1 投票 0

根据 ECMAScript 规范,非空块语句的 VarScopedDeclarations 和 VarDeclaredNames 是什么?

我正在研究 ECMAScript 规范,以找出块内 vars 语句根据规范的预期行为: 功能测试() { console.log('块之前', bar); {...

回答 1 投票 0

如何丢弃 void 表达式的指示符?

C11 对 void 表达式有如下描述: 6.3.2.2 无效 void 表达式(类型为 void 的表达式)的(不存在的)值不得以任何方式使用,隐式或 ex...

回答 3 投票 0

如何丢弃C中void表达式的指示符?

我的问题如标题所述。 C11对void表达式有如下描述: void 表达式(类型为 void 的表达式)的(不存在的)值不得用于...

回答 1 投票 0

C++1y/C++14:常量表达式中不允许在其生命周期之外对对象进行赋值?

根据当前草案,以下 C++14/C++1y 程序是否格式错误? #包括 模板 结构体字面量数组 { T数据[n]; }; 模板<

回答 1 投票 0

C 标准中整数秩转换的描述不准确?

C 标准说(6.3.1.1 布尔值、字符和整数): 1 每个整数类型都有一个整数转换等级,定义如下: 任何两个有符号整数类型都不应具有相同的等级,即使 t...

回答 1 投票 0

构造函数有“类型”吗,因为它是一个特殊的成员函数?

我最近了解到构造函数没有名称。我还知道函数有一种称为函数类型的类型。例如, 无效函数(int) { } 在上面的代码片段中,func 具有函数...

回答 3 投票 0

构造函数在 C++ 中是否有“类型”,因为它是一个特殊的成员函数

我最近了解到,构造函数在 C++ 中没有名称以及有关它们的其他一些事情。我还知道函数在 C++ 中有一种称为函数类型的类型。例如, 无效函数(int) ...

回答 3 投票 0

Gcc 和 clang 拒绝使用 =default

我编写了以下程序,可以使用 EDG 编译,但被 gcc、clang 和 msvc 拒绝。演示 结构体C { C(const C&&) = 默认值; // EDG:好的,gcc:否,Clang:否 }; int main() { }

回答 1 投票 0

Rust 中如何检查两个 HashMap 是否相同?

我有两个 HashMap(游乐场): 让 mut m1: HashMap = HashMap::new(); m1.插入(1, 100); m1.插入(2, 200); 让 mut m2: HashMap = HashMap::new(); m2.插入...

回答 1 投票 0

运营商吗< need to be declared before calling std::lexicographical_compare

以下代码在c++20之前编译: #包括 #包括 结构体Foo { }; 结构体FooArray { std::向量 a; }; 布尔运算符<(const FooArray&a...

回答 1 投票 0

不同类型的指针兼容吗?

我正在尝试确定两个结构是否兼容。就我而言,我不清楚不同类型的指针是否被认为是兼容的。在下面的示例中,结构体 t1 和 t2

回答 2 投票 0

不同类型的指针布局兼容吗?

我正在尝试确定两个结构是否布局兼容。就我而言,我不清楚不同类型的指针是否被认为是兼容的。在下面的示例中,结构体 t1 和...

回答 1 投票 0

常量表达式中的对象指针是否可以始终与 nullptr 进行比较?

以下程序被简化以演示该问题。 struct A 有一个 constexpr 成员函数,它将 this 与某个指针进行比较,该指针可以是 nullptr。那么这个成员函数就是c...

回答 1 投票 0

带有显式对象参数的默认比较运算符

在 C++23 中,类可以具有显式对象成员函数(第一个参数以 this 为前缀),包括成员比较运算符。其中哪些是编译器可以自动生成的...

回答 1 投票 0

持续评估期间的复制省略(例如 NRVO)

根据cppreference 在常量表达式和常量初始化中,从不执行复制省略。 但实践中似乎并不总是如此。在下面的程序中,函数...

回答 1 投票 0

我们是否可以显式地专门化类模板的内联静态数据成员,而不专门化类模板本身

我编写了以下使用 clang 进行编译的代码片段,但 gcc 和 msvc 拒绝了它。演示 #包括 #包括 //包装器 模板 结构包装器 {

回答 1 投票 0

预处理标记的“原始拼写”是什么?

C++23/cpp.stringize 状态: 字符串化参数中每个预处理标记的原始拼写保留在字符串文字中 短语“原始拼写&...

回答 1 投票 0

我们是否可以直接显式地特化类模板的静态数据成员,而不特化类模板本身

我编写了以下代码片段,使用 clang 进行编译,但 gcc 和 msvc 拒绝它演示 #包括 #包括 //包装器 模板 结构包装器 {

回答 1 投票 0

C 中允许以命名返回值优化形式进行复制省略吗?

以下 C 程序是否保证以 0 退出,或者是否允许编译器像 C++ 中所允许的那样相互识别对象 s 和 t,即所谓的命名返回值优化...

回答 1 投票 0

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