この質問は、より適切な Usenet にも送信されていますが、これはより大規模で信頼性の高いフォーラムです。
std::allocator::construct
は、引数パラメータ パックを括弧を使用してオブジェクト構築に転送するように定義されています (別名、直接初期化)。
中かっこ、つまり均一な初期化を使用するstd::make_shared
と、 や
などの関数から集約データ型を初期化できますcontainer::emplace
。また、イニシャライザ リストの内容をそのような関数の引数リストに入れ、initializer_list
転送時の型推定の問題を解決することもできます。
この代替案は考慮され、却下されましたか? 将来の規格に切り替えるには遅すぎますか? これは重大な変更になるようですが、特に凶悪なものではありません。