C++ 检查静态常量类数据成员的静态断言?

C++ 检查静态常量类数据成员的静态断言?,c++,class,c++11,static-assert,C++,Class,C++11,Static Assert,我有几个具有“staticconst”数据成员的类。 我想知道如何在编译时用static_assert检查它们的值。 我可以将静态断言直接放在类主体中吗? (将我的静态断言放在每个构造函数中不是很实际。)是的,静态断言()也可以放在声明可以放的任何地方。其中包括类的主体: class C { public: enum E { A, B, C, NumEes }; constexpr Foo foos[] = { {...}, {...}, {...

我有几个具有“staticconst”数据成员的类。 我想知道如何在编译时用static_assert检查它们的值。 我可以将静态断言直接放在类主体中吗? (将我的静态断言放在每个构造函数中不是很实际。)

是的,
静态断言()
也可以放在声明可以放的任何地方。其中包括类的主体:

class C {
public:
    enum E {
      A, B, C,
      NumEes
    };
    constexpr Foo foos[] = { {...}, {...}, {...} };
    static_assert( NumEes == sizeof foos / sizeof *foos, "size mismatch" );

    // ...
};