C の従来のデフォルト コンストラクター構文では、単純に空のコンストラクター関数を定義していました。
S() {}
ただし、C 11 では「=default」構文が導入され、いくつかの機能が提供されます。利点:
#include <type_traits> struct X { X() = default; }; struct Y { Y() {} }; int main() { static_assert(std::is_trivial<X>::value, "X should be trivial"); static_assert(std::is_pod<X>::value, "X should be POD"); static_assert(!std::is_trivial<Y>::value, "Y should not be trivial"); static_assert(!std::is_pod<Y>::value, "Y should not be POD"); }
以上がC 11 のデフォルト コンストラクターに `=default` を使用するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。