c++ - 如何初始化结构声明中的位域?

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

<分区>

当我尝试在结构声明中初始化一个位域时,MSVC++ 给我一个编译器错误:

struct SomeStruct
{
    bool a : 1 = false; // compiler error
    bool a = false : 1; // compiler error
} ;

在结构声明中初始化位字段的语法是什么?

最佳答案

我从 clang 得到的错误非常明显:

bitfield member cannot have an in-class initializer

所以你根本做不到,你需要一个初始化成员的构造函数。

关于c++ - 如何初始化结构声明中的位域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32691535/

相关文章:

c++ - 为什么我无法捕获此异常? (C++,SFML)

c++ - 从 vector<string> 转换为 wchar_t**

c++ - 如果未明确说明大小信息,模板函数如何知道大小?

c++ - 减少 std::bind 模板代码膨胀?

c++ - 具有 std::vector 和 std::set 属性的容器?

c++ - 为什么 std::optional::operator=(U&&) 要求 U 是非标量类型?

c++ - 用于编译时注入(inject)检测代码的 Pin Like 工具

c++ - 加载和卸载 shell 扩展库

c - 二维数组的 malloc 在 GCC 中有效,但在 Visual C++ 中无效

visual-studio-2010 - 应用程序配置不正确????怎么办?