【发布时间】:2012-06-16 11:16:16
【问题描述】:
我有几个具有“静态常量”数据成员的类。 我想知道如何在编译时使用 static_assert 检查它们的值。 我可以将 static_assert 直接放在类体中吗? (将我的 static_assert 放在每个构造函数中并不是很实用。)
【问题讨论】:
标签: c++ class c++11 static-assert
我有几个具有“静态常量”数据成员的类。 我想知道如何在编译时使用 static_assert 检查它们的值。 我可以将 static_assert 直接放在类体中吗? (将我的 static_assert 放在每个构造函数中并不是很实用。)
【问题讨论】:
标签: c++ class c++11 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" );
// ...
};
【讨论】: