language-lawyer 相关问题

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

静态成员定义的目标范围是什么?

int x = 42; 结构体A { 静态 int x; // 1 }; int A::x = x; // 2 为什么在 2 处 x 的重新声明位于类作用域中?某些声明的轨迹在哪里 - 仅在第一个声明处 (1)...

回答 1 投票 0

关于C中用“restrict”限定的指针的问题

C11 6.7.3.1: 1 令 D 为普通标识符的声明,它提供 指定的手段 对象 P 作为指向类型 T 的限制限定指针。 2 如果 D 出现在块内并且...

回答 1 投票 0

带转换的 C++ 引用初始化

我正在尝试理解C++中的引用初始化,特别是初始化左值引用到“const”和右值引用。 当我在这里阅读标准草案时: https://鳗鱼...

回答 1 投票 0

显式 constexpr 默认比较

在 GCC 13.3 中进行回归后,我必须将 constexpr 添加到程序中的默认飞船运算符中,并观察到编译器在 C++20 模式下处理某些代码的方式存在一些差异。这些可以是...

回答 1 投票 0

UML 部署和节点所有权

UML 2.5.1 规范是这样描述 Node 的(第 658 页,第 19.4.3 节“语义”): “(...)节点的内部结构只能由其他节点组成。” 然而,它确实...

回答 1 投票 0

通过迭代赋值创建数组

想要在 Ruby 中利用以下行为 ary = Array.new(5) { |i| [i,j=2*i,k=j+1] } p ary #> [[0, 0, 1], [1, 2, 3], [2, 4, 5], [3, 6, 7], [4, 8, 9]] 它适合我的目的,...

回答 1 投票 0

运算符的 Python MRO:当 RHS 是子类时,选择 RHS `__rmul__` 而不是 LHS `__mul__`

考虑以下独立示例: 类矩阵: def __mul__(自己,其他): print("矩阵.__mul__(⋯)") 返回未实现 def __rmul__(自己,其他): ...

回答 1 投票 0

GlobalDeclarationInstantiation 附件语义中的早期错误

我找不到任何关于规范中下一点的来源(让它成为 GlobalDeclarationInstantiation): 二.如果将 FunctionDeclaration f 替换为 a 具有 ... 的变量语句

回答 1 投票 0

GCC14 执行多个隐式转换,而不是一次匹配的显式转换

#包括 #包括 A类{ std::字符串数据; 民众: A() = 默认值; 显式 A (const char* data) : data(data) {} 运算符 const char* () const; 解释一下...

回答 1 投票 0

C语言中的“互换性”到底指的是什么?

C11 6.2.5 P28: 指向 void 的指针应具有与指向字符类型的指针相同的表示和对齐要求。 48) 同样,指向

回答 1 投票 0

使用带有 unreachable_sentinel 的范围是否会导致未定义的行为?

Cppreference 有以下 std::unreachable_sentinel 的用法示例: 模板 constexpr std::size_t strlen(const CharT* s) { 返回 std::ranges::find(s, std::

回答 1 投票 0

C++03 是 C++ 标准的新版本还是只是 C++98 的技术勘误表 (TC)?

我很确定我在某个权威来源上读到过(我相信是在 WG21 页面上),C++03 不是 C++98 的技术勘误表,而是 C++ 的新版本标准...

回答 2 投票 0

使用显式默认构造函数从空大括号复制列表初始化

为什么似乎所有编译器都拒绝以下程序? (https://godbolt.org/z/EK8zW34nY) 结构A { 显式 A() {} }; int main() { 一个={}; } a 应该按照 [dc...

回答 1 投票 0

使用初始值设定项列表构造函数重载了默认构造函数,该构造函数也是默认构造函数和列表初始化

考虑以下使用 clang 编译但被 edg、gcc 和 msvc 拒绝的示例。演示 #包括 结构体C { C(){} C(std::initializer_list 我...

回答 1 投票 0

我们如何能够在没有默认构造函数的情况下默认构造对象

我了解到,当用户在类中提供构造函数时,编译器不会隐式生成默认构造函数。然后我写了下面的代码 C d{};特别是我希望...

回答 1 投票 0

`member_variable.a_type::b_type::static_function()`符合C++标准吗?

在我最近回顾的扩展 boost.intrusive 库的项目中,我在类 treap_impl 中遇到了以下代码: node_ptr this_head(this->tree_type::header_ptr()); node_ptr 对...

回答 1 投票 0

ECMAScript规范中,非空块语句的VarScopedDeclarations和VarDeclaredNames的语义规则是什么?

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

回答 1 投票 0

为什么 C 标准禁止在源文件末尾使用部分预处理标记?

我正在阅读 ISO C 草案标准 n3096 并注意到以下粗体声明(§ 5.1.1.2 p1): 源文件被分解为预处理标记和空白字符序列(包括...

回答 1 投票 0

复制赋值运算符的重载解决方案

如果除了隐式定义的复制赋值运算符之外,类还定义了带有非左值引用对象参数的运算符=,则必须选择哪个运算符? 请考虑

回答 1 投票 0

在 ECMAScript 规范中,非空块语句的语义 VarScopedDeclarations 和 VarDeclaredNames 的定义产生是什么?

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

回答 1 投票 0

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