問題タブ [explicit-constructor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C++17 の明示的なデフォルト コンストラクター
C++17 では、標準ライブラリの空のタグ型に、explicit
とマークされたデフォルトのコンストラクターが追加されました= default
。たとえば、std::piecewise_construct_t
現在は次のように定義されています。
私の質問は、単純に、C++14 からのこの変更の理由は何ですか? 明示的にデフォルト設定された明示的なデフォルト コンストラクター (!) は、空のクラスに対して何を意味しますか?
(だまされないように: 2010 年のこの質問では、明示的なデフォルト コンストラクターの目的について質問していますが、それは C++11 より前で、かなり前のことなので、状況が変わった可能性があります。この質問は最近のものですが、答えは、デフォルトのコンストラクターの存在に関係なく集約の初期化が実行されることを示唆しているように見えるので、最新の標準でのこの変更の理由について興味があります.)