5
私は静的constデータメンバーを持ついくつかのクラスを持っています。 static_assertを使ってコンパイル時に値をチェックする方法を知りたいです。 static_assertを直接クラス本体に配置できますか? (私のstatic_assertをすべてのコンストラクタに置くことはあまり実用的ではありません)スタティックconstクラスのデータメンバーをチェックするスタティックアサート?
私は静的constデータメンバーを持ついくつかのクラスを持っています。 static_assertを使ってコンパイル時に値をチェックする方法を知りたいです。 static_assertを直接クラス本体に配置できますか? (私のstatic_assertをすべてのコンストラクタに置くことはあまり実用的ではありません)スタティックconstクラスのデータメンバーをチェックするスタティックアサート?
はい、宣言もどこにでも置くことができます。これにはクラスの本文が含まれます:
class C {
public:
enum E {
A, B, C,
NumEes
};
constexpr Foo foos[] = { {...}, {...}, {...} };
static_assert(NumEes == sizeof foos/sizeof *foos, "size mismatch");
// ...
};