【问题标题】:Static assert to check static const class data members?静态断言检查静态常量类数据成员?
【发布时间】:2012-06-16 11:16:16
【问题描述】:

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

【问题讨论】:

    标签: c++ class c++11 static-assert


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多