用静态断言检查静态常量类数据成员?

5

我有几个类带有"static const"数据成员。 我想知道如何使用static_assert在编译时检查它们的值。 我可以直接将static_assert放在类体中吗? (在每个构造函数中放置我的static_assert并不是很实用。)

1个回答

4

是的,static_assert()可以放置在任何声明可以放置的地方,包括类的主体:

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

    // ...
};

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接