c++ - 位域元素的默认值

标签 c++ c++11 bit-fields

在 C++11 中可以做到

struct S {int i = 42;};

如果忘记初始化成员 i 它 默认初始化为 42。我刚刚尝试了这个 位域为

struct S {int i = 42 : 5;};

正在得到

error: expected ';' before ':' token

位域成员是否存在此功能?如果存在,我该如何使用?

最佳答案

位域初始化的语法是

 struct S {int i: 5 = 42;};

目前仅在 c++20 中可用:-std=c++2a

关于c++ - 位域元素的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27057973/

相关文章:

c++ - 由第二个数组中的值限定的随机数数组

c++ - 候选模板被忽略 : substitution failure(error with clang but not g++)

java - 在给定的 int 中设置位 1-3,仅根据需要设置位 1-3

C++ 编译 : what did i do wrong

c++ - 如何在单个删除语句中删除多个动态分配的数组?

c++ - 快速将 '0 1 1 0 1'格式的字符串转成bitset

c# - C# 中的位域

c++ - 句柄的可移植位字段

c++ - 在 Windows 7 中释放写入权限

c++ - 在构造函数中分配给 *this