undefined-behavior 相关问题

编译或执行打破语言规则的程序的不可预测的结果,编译器,解释器和运行时系统都不得强制执行。

如果函数采用可能抛出异常的值类型,可以将其标记为 no except 吗?

在C++中,我在以下情况下将函数标记为noexcept: 函数本身不会抛出异常,但其值类型参数在构造时可能会抛出异常。 以下代码

回答 1 投票 0

在 C++ 中使用逗号运算符时的未定义行为

我正在尝试学习如何在 C++ 中计算表达式。所以尝试并阅读不同的例子。下面是我无法理解它是否会产生未定义行为的代码...

回答 1 投票 0

C++ 编译器如何设法发出完全无意义的代码? [已关闭]

这是此问题的代码的稍微修改版本: #pragma警告(默认值:4716) int 递归(int i) { 整数结果; 结果 = (i>1 ? i - recur(i/2) : 3); // 有意返回

回答 2 投票 0

通过将指针转换为数组元素来将数组的一部分解释为对象

假设您有一个表示原始数据的浮点数数组,以及几种表示仅将浮点数作为成员的 2D 形状的类型,如下所示: #包括 #包括 结构

回答 1 投票 0

UB 或非 UB,在 Rust 中同时操作静态内存

我有一段 Rust 代码,其中两个线程使用原始可变指针访问和修改相同的静态用途。对值执行的操作是按位且非原子的,但逻辑...

回答 1 投票 0

类定义中的宏相关访问说明符会导致未定义的行为吗?

假设我有以下两个类定义(只有 bar() 的访问说明符不同,其他所有内容都相同): 类我的类{ 民众: 无效 foo(); 无效栏(); // b...

回答 2 投票 0

未定义行为是否依赖于c++中的编译器? [已关闭]

未定义行为是否取决于c++中的编译器? 每个编译器对于每个问题都有自己的行为!

回答 4 投票 0

将值为 0x80000000 的整数除以 UB 吗?

这是代码 printf("%d", 0x80000000 / 10). 它打印相对于其绝对值的正确值,但忘记添加减号。让我们检查一下原始整数(有符号)是否...

回答 1 投票 0

如何获取任意两个对象之间的内存距离(以字节为单位)(如果此测量以有意义的方式存在)?

指针算术只是针对指向同一数组(或数组后面的元素)的元素的指针定义的行为。 是否有任何定义的行为来获取两个元素之间的内存距离...

回答 1 投票 0

我可以将可调用对象分配给具有不同返回类型的 std::function 吗?

我将函数存储在 std::function 中。调用这个存储函数时我不关心返回值,因此 std::function 只是返回 void。

回答 2 投票 0

gcc 会跳过此检查有符号整数溢出吗?

例如,给出以下代码: 整数 f(整数 n) { 如果 (n < 0) return 0; n = n + 100; if (n < 0) return 0; return n; } Assuming you pass in a number that i...

回答 1 投票 0

我可以将 lambda 分配给具有不同返回类型的 std::function 吗?

我有一种情况,我有两个不同的函数签名,它们的返回类型不同。 调用函数时,返回类型被忽略,因此它是 void 返回类型。 有没有未定义的地方

回答 2 投票 0

存储std::function的不同返回类型

我有一种情况,我有两个不同的函数签名,其返回类型不同。 调用函数时忽略返回类型,因此它是 void 返回类型。 有吗

回答 1 投票 0

使用const_cast<>时未定义的行为在哪里? [重复]

如果我这样做: const char* const_str = "某个字符串"; char* str = const_cast(const_str); // (1) str[0] = "P"; // (2) 未定义的行为到底在哪里(哪一行)? 我去过海...

回答 2 投票 0

函数参数的计算和函数的返回值分配给另一个对象之间是否存在序列点?

函数参数的计算和函数的返回值分配给另一个对象之间是否存在序列点? 换句话说,这是明确定义的行为吗? INT...

回答 2 投票 0

是否调用非常量内存。乐趣。通过 const_cast 获得的非 const ref 在 const 对象上,仅当 fun 实际修改对象时才调用 UB?

简而言之,我问以下代码是否仅在 /* body */ 确实更改了 i 的值时才调用 UB,或者如果没有,则通过调用非常量 MaybeChange 成员函数来调用 UB ...

回答 1 投票 0

在 Rust 中以原子方式处理内存区域

假设我们可以访问对齐为 8 且区域大小为 8 的倍数的连续内存区域。 现在,假设我想使用该区域的特定部分,但我...

回答 1 投票 0

未初始化变量和编译器(GCC)的乐趣

C++ 标准的第 §3.9.1/6 节说: bool 类型的值为 true 或 false。 现在考虑这段代码, 无效 f(布尔 b) { switch(b) //因为 b 是 bool,所以它的值可以是...

回答 2 投票 0

有符号 int 上溢-下溢会导致未定义的行为,但编译器如何预测这种情况?

有符号 int 算术运算可能会溢出和下溢,当发生这种情况时,根据 C++ 标准(和 C 标准),这是未定义的行为。届时该计划预计...

回答 1 投票 0

如何在zig中安全地转换整数

当目标类型无法保存结果值时,@intCast() 会导致未定义的行为。是否有类似 @safeIntCast() 或类似的函数会返回 CastError!anytype?

回答 1 投票 0

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