Да, это так.Конструктор по умолчанию, который генерирует компилятор, и тривиальный конструктор
Foo() = default;
и позволяют писать constexpr bool b = Foo{};
, предполагая, что все члены класса могут быть построены constexpr
.Обратите внимание, что если бы вы написали
Foo(){}
, то constexpr
будет , а не будет разрешено.(Важное различие между default
и конструктором с пустым телом.)