У меня есть несколько классов с элементами данных "static const". Я хотел бы знать, как проверить их значения во время компиляции с помощью static_assert. Могу ли я поместить static_assert непосредственно в тело класса? (Размещать мой static_assert в каждом конструкторе не очень практично.)
Статическое утверждение для проверки статических элементов данных класса const?
Ответы (1)
Да, static_assert()
можно разместить везде, где может быть объявление. Это включает в себя тело класса:
class C {
public:
enum E {
A, B, C,
NumEes
};
constexpr Foo foos[] = { {...}, {...}, {...} };
static_assert( NumEes == sizeof foos / sizeof *foos, "size mismatch" );
// ...
};
person
Marc Mutz - mmutz
schedule
16.06.2012