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