我有几个带有“static const”数据成员的类。 我想知道如何使用static_assert在编译时检查它们的值。 我可以将static_assert直接放在类体中吗? (将static_assert放在每个构造函数中都不太实用。)
答案 0 :(得分:4)
是的,static_assert()
也可以放在声明的任何地方。这包括一个班级的主体:
class C {
public:
enum E {
A, B, C,
NumEes
};
constexpr Foo foos[] = { {...}, {...}, {...} };
static_assert( NumEes == sizeof foos / sizeof *foos, "size mismatch" );
// ...
};