移动 std::bitset<N> 是否超过 N 个位置未定义的行为?
Is shifting std::bitset<N> more than N positions undefined behavior?
如如果计数大于类型宽度,右移是否未定义行为?中所述,如果位移位数超过有效操作数大小,则未定义移位值。
因此,在下文中,bar
的值未定义:
uint32_t foo = 123;
uint32_t bar = (foo >> 33);
这种轮班操作是否为std::bitset
定义得很好?如:
std::bitset<32> foo(123);
std::bitset<32> bar(foo >> 33);
我可以在哪个官方文档中找到此类信息?
该案在cpp偏好(https://en.cppreference.com/w/cpp/utility/bitset/operator_ltltgtgt(中没有明确说明。
结果由标准 [bitset.members]/9 定义为 0:
bitset& operator>>=(size_t pos( noexcept;
9 效果:将 *this 中位置 I 处的每个位替换为一个值 确定如下:
(9.1( 如果 pos>= N - I,则新值为零;
(9.2( 如果 pos
相关文章:
- 编译C++时未定义的引用
- vscode g++链路故障:体系结构x86_64的未定义符号
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 不知道某个东西是否被忽略会引入未定义的行为吗
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- 未定义的引用在哪里
- 编译时的 CImg 库返回对"__imp_SetDIBitsToDevice"的未定义引用
- 对Py_Initialize()的未定义引用
- c++11评估顺序(未定义的行为)
- 使用mysql c++连接器的未定义引用
- 从python调用openMP共享库时,未定义opnMP函数
- 在 Mac 上使用 CMAKE 将 FFTW 和 FFTWPP 链接到项目中时未定义的符号
- Cmake 链接问题:未定义对 Button::mousePressEvent(QGraphicsSceneMouseE
- 未定义的引用 .. 使用 OpenCV 编译 C++ 代码时,从命令行
- 具有外部"c"和程序集的未定义函数
- 移动 std::bitset<N> 是否超过 N 个位置未定义的行为?
- 通过在此指针上放置新位置重新初始化对象时未定义的行为
- 当我在Xcode上访问矩阵(openCV垫子)的位置时,为什么我会得到未定义的行为(exc_bad_access(代码=
- 指向已解除分配位置的指针 是未定义的行为吗?