类型没有数据成员的静态断言
Static assertions that a type has no data members
我的类型当前没有实例数据成员。我想确保将来不会意外添加任何内容。
我可以用static_assert
和type_traits
做这件事吗?我想出的最好的办法是断言类型的大小,但由于它也必须是抽象的,所以这是行不通的,或者至少不能以可移植的方式。
我很乐意允许静态数据成员。
检查类型的大小是个好主意。你可以简单地制作一个抽象的伪类,然后:
static_assert(sizeof(T) == sizeof(Dummy), "oops");
也就是说,检查目标类的大小是否与已知没有数据成员的类的大小相同。
相关文章:
- 尝试使用 std::vector<std::thread时出现静态断言失败错误>
- uint_not_usable_without_attribute在业力规则中使用数字生成器时静态断言失败
- 初始值设定项列表构造和静态断言
- 如何在 c++11 中静态断言 std::array 类成员进行排序?
- 我如何静态断言static_cast是 noexcept?
- 绕过特征静态断言
- Qt C++:静态断言失败:信号和插槽参数不兼容
- 捕获的静态断言 lambda
- 静态断言添加操作是否可用
- 错误:静态断言失败:std ::线程参数必须在转换为rvalues后不可行
- 是否允许编译器在静态断言中评估重言式
- 公共继承的静态断言
- 静态断言失败,出现"Windows headers require the default packing option..."
- 静态断言,如果在编译时不知道表达
- 如果标头包含在另一个标头中,但不包含 CPP,则静态断言
- 静态断言 std::array 的大小,其类型是使用 decltype 从成员函数的返回值中获取的
- 围绕静态断言不完整的类型
- C 11多态映射键静态断言失败:哈希函数必须与密钥类型的参数无关
- 包含多态对象的向量:静态断言误差
- 与复制构造函数不同的移动构造函数的静态断言