类型没有数据成员的静态断言

Static assertions that a type has no data members

本文关键字:静态 断言 数据成员 类型      更新时间:2023-10-16

我的类型当前没有实例数据成员。我想确保将来不会意外添加任何内容。

我可以用static_asserttype_traits做这件事吗?我想出的最好的办法是断言类型的大小,但由于它也必须是抽象的,所以这是行不通的,或者至少不能以可移植的方式。

我很乐意允许静态数据成员。

检查类型的大小是个好主意。你可以简单地制作一个抽象的伪类,然后:

static_assert(sizeof(T) == sizeof(Dummy), "oops");

也就是说,检查目标类的大小是否与已知没有数据成员的类的大小相同。