language-lawyer 相关问题

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

为什么我不能将 void* 静态转换为函数指针?

这可以编译(尽管是 UB (对吧?)因为 fvp == nullptr) 整数 f; 无效* fvp{}; decltype(f)* fp = static_cast(fvp); 但这不能 无效 f() {} 无效* fvp{}; decltyp...

回答 2 投票 0

将 0 向左移动是否被认为是 C 中的未定义行为?

是否是未定义行为(UB): 0 << 32 0LL << 64 ? I would appreciate it if the answer includes references to the C standard.

回答 1 投票 0

Java 中缩小引用转换规则的反例

考虑 JLS 第 1.5.6.1 节中提到的允许缩小引用转换的规则。 以下是缩小引用转换的示例: 数组列表...

回答 1 投票 0

java中涉及捕获转换的边界

我对JLS 18.3.2有疑问: 18.3.2 涉及捕获转换的界限 当边界集包含 G<α1, ..., αn> = capture(G) 形式的边界时,意味着新的边界...

回答 1 投票 0

分配给结构成员,其中 RHS 读取整个结构

考虑一个非常标准的结构定义: 结构体 foo { 整数a; 整数b; 国际CRC; 整数c; }; 和初始化 s.a = 1; s.b = 2; s.c = 3; // 规范说 crc 是在整个 st 上计算的...

回答 1 投票 0

结构化绑定声明不能是`constinit`

可以从 C++20 开始使用 constinit 说明符声明结构化绑定吗? 例如 结构体 A { int i, j; }; constinit auto [x, y] = A{ 0, 1 }; 编译器在这里有些分歧。 MSVC com...

回答 1 投票 0

括号表达式中反斜杠字符的处理

GNU awk 手册的 3.4 使用括号表达式部分,内容如下 要在方括号表达式中包含字符“\”、“]”、“-”或“^”之一,请在其前面添加“\”。例如:  ...

回答 1 投票 0

如何判断下面的例子是否确定赋值?

给出以下示例: A类{ 公共静态无效主(字符串[] args){ 整数n=5; 整数 k; 同时(n<6) { k=5; break; } ...

回答 1 投票 0

UML StructuredClassifier::role 和 allRoles()

在第 11.8.15.5 节“关联结束”和第 11.8.15.6 节 StructuredClassifier 的“操作”中。 UML 2.5.1 规范的 PDF 版本的 275 中,我们看到了...的定义

回答 1 投票 0

三元运算符中的复制省略是否是强制性的(如果允许的话)?

请考虑以下 C++17 代码: #包括 #包括 结构S { S(int) { std::cout << "S() "; } S(const S &) { std::cout <&l...

回答 2 投票 0

为什么 using 语句在 IEnumerator 上起作用以及它有什么作用?

当我学习foreach时,我在某处读到过这样的内容: foreach(可枚举中的 var 元素) { // 对元素做一些事情 } 基本上相当于这样: 使用 (var 枚举...

回答 3 投票 0

C 中标识符的翻译限制

出于教育目的,我已经开始编写自己的 C 编译器。我的目标是基本上符合 C99 标准。现在我有一个关于标识符的最大长度的问题。 这是一个分机...

回答 1 投票 0

C - 标识符的翻译限制

出于教育目的,我已经开始编写自己的C编译器。我的目标是基本上符合 C99 标准。现在我有一个关于标识符的最大长度的问题。 这是一个额外的...

回答 1 投票 0

调用零大小、非活跃联合体成员的成员函数

我知道访问联合体的非活动成员是UB,但是调用零大小且简单的联合体成员的成员函数怎么样?从技术上讲,它无法访问,所以我希望它是有效的,但我......

回答 1 投票 0

realloc(ptr, 0) - 现在怎么办?

根据 C23 的变更日志,提案 n2464 被投票并实现,使得 realloc(ptr, 0) 显式地未定义行为,而它在之前的

回答 1 投票 0

C 和 C++ 在运行时对齐指针的合法性上有区别吗?

假设对齐是 2 的幂,则可以使用以下表达式来查找下一个正确对齐的地址: (地址 + 对齐方式 - 1u) & ~(对齐方式 - 1u) 然而,为了执行...

回答 1 投票 0

是否可以在不违反严格别名的情况下对齐指针?

可以使用以下表达式来查找下一个正确对齐的地址: (地址 + 对齐方式 - 1u) & ~(对齐方式 - 1u) 然而,为了执行它,地址需要转换为

回答 1 投票 0

标准对RMW的负载部分是否比纯负载提出了更多的要求

考虑这个例子: #包括 #包括 #包括 #包括 #包括 int main(){ std::atomic v = 0; 是...

回答 1 投票 0

gcc 错误?名称隐藏与派生类中具有相同名称的类模板的专门化,但仅当基类也是模板时

下面显示的错误消息是 gcc 13.1.0 bug 吗? 此代码在 clang 18.0.2 和 MSVC 19.41 下编译良好。 如果将 s0 更改为非模板类,此代码甚至可以在 gcc 上编译正常。 有

回答 1 投票 0

C 和 C++ 编译器包括顺序和相对路径

我用以下文件夹结构进行了测试: 主文件夹 主程序 库文件.h 文件 库文件.h 图书馆1名称 主标题.h 库文件.h

回答 1 投票 0

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