编译或执行打破语言规则的程序的不可预测的结果,编译器,解释器和运行时系统都不得强制执行。
在 C++14 中放置 new + reinterpret_cast:格式良好?
考虑以下 C++14 中的示例: alignas(T) 无符号字符数据[sizeof(T)]; 新(数据)T(); T* p = reinterpret_cast(数据); p->某事(); // 布? 这段代码合法吗?或者是
C 标准指定了有限浮点值在存储为整数类型时如何转换,但似乎没有指定非有限值的行为: 6.3.1.4 真实浮动...
在 Copy 类型中使用 std::ptr::write_volatile 实现内部可变性的安全性(即没有 UnsafeCell)
我正在尝试在复制值类型中实现内部可变性(用于缓存目的)。 问题是,据我所知,没有任何类型可用于内部可变性(例如 UnsafeCel...
Rust:在“Copy”类型中使用“std::ptr::write_volatile”实现内部可变性的安全性(例如,没有“UnsafeCell”)
我正在尝试在复制值类型中实现内部可变性(用于缓存目的)。 问题是,据我所知,没有任何类型可用于内部可变性(例如 UnsafeCel...
Rust:在“Copy”类型中使用“std::ptr::write_volatile”实现内部多变性的安全性(例如,没有“UnsafeCell”)
我正在尝试在复制值类型中实现内部可变性(用于缓存目的)。 问题是,据我所知,没有任何类型可用于内部可变性(例如 UnsafeCel...
我想知道将基子类向下转换为空接口子类的有效性。请参阅下面的示例。基本上我想以通用模板自由方式存储数据(从
我尝试实现 std::function 的克隆。为简单起见,我想创建一个类似 std::function 的类来处理 int(*)(int) 类型。 我面临复制构造函数的问题。当电话
C++ 将 int 转换为枚举,然后将该枚举读取为位字段安全与否?
#包括 #包括 #包括 #包括 使用命名空间 std; 枚举类 OrderFlags : uint16_t { 无 = 0, 买方 = 1, 更新音量...
当 x 是有符号整数并且 x=1 时,找到一个值 y,这样 (x < y) == (-x > -y) 将为 false?
问题问, 令 int x = 1,找到 int y 的值,其中以下语句将返回 false: (x < y) == (-x > -y) 我知道答案应该是 4 个字节长(8 个十六进制数字),但我...
我正在编写一些低级抽象,用于通过 SPI 与某些芯片进行通信,并且我创建了寄存器抽象以避免棘手的位操作。我想我可以创建界面
是否将整数视为较小整数UB的数组? 比如这段代码中是否有UB: #包括 #包括 #include // 排序 无效排序字节...
指针到指针的reinterpret_cast - 这是未定义的行为吗?
我们需要将int**强制转换为void**,可以使用reinterpret_cast。然而,它在技术上是 C++ 标准允许的,还是我们处于未定义行为领域? 使用案例 使用 Nvidia 时
我正在寻找一种可移植的方法来生成前缀位掩码,其前 n 位设置为 0 <= n <= 32 (or 64 or an arbitrary integer type bit width). Examples: prefix_bitmask(0) =
为什么在 C++11 之后 std::basic_string 的尾后迭代器的取消引用仍然是 UB?
众所周知,C++11 为 std::basic_string 添加了一个 null 终止符(这不计入大多数成员函数)。但是当我阅读cpp ref时,我发现对end()的取消引用是一个UB(这一段是...
所以为了更好地理解new/delete(真的是为了用小例子向自己证明为什么接口需要虚拟析构函数),我想了解内存泄漏,这样我就可能生活在恐惧之中……
如果我复制一个指针,然后要求删除指向的分配,这是有效的C++,还是未定义的行为? char* orig = new char[100]; 字符*复制=原始; 删除[]复制;
假设我做了如下事情: size_t长度=1000; char* p = malloc(长度); 然后我想循环遍历元素,所以最基本的是: 对于 (size_t i = 0; i < length; ++i) { p[i...
我知道这是一个奇怪的问题,但只是很好奇。 字符* ptr = 0; strcpy( (char*) &ptr, "UB?"); 这段代码的意思是“我将使用 ptr 的内存作为 char 数组。” 我认为'这是绝对的...
我知道这是一个奇怪的问题,但只是很好奇。 字符* ptr = 0; strcpy( (char*) &ptr, "UB?"); 这段代码的意思是“我将使用 ptr 的内存作为 char 数组。” 我认为'这是绝对的...
我对分支预测了解一些。这发生在 CPU 上,与编译无关。尽管您也许能够告诉编译器一个分支是否更有可能...