転送されたインプレース構築とは、std::allocator::constructとさまざまな emplace メソッド ( std::vector::emplace_back など) を意味します。C++ で転送されたインプレース構築では、リスト初期化構文を利用していない (できない?) ことがわかりました。その結果、集約をインプレースで構築することは決してできないようです。転送されたインプレース構築がリストの初期化をサポートしていないため、集計型がサポートされていないかどうかを確認したいだけです。これは言語の制限によるものですか?誰かがこの問題に関する標準への参照を提供できますか? 以下に図を示します。
直接のようにインプレース構築を行うことができますが、
int(*p)[3] = ...;
new(p) int[3]{1, 2, 3};
次のような転送されたインプレース構築はできません
std::allocator<int[3]> allo;
allo.construct(p, 1, 2, 3);