標準 (n4296)、23.2.3/4 (表 100) のシーケンス stl コンテナーの要件を確認し、引数イテレーター (X - コンテナー、i および j - 入力イテレーター) を取るコンストラクターを読みました。
X(i, j)
X a(i, j)
コンテナの要素型が EmplaceConstructible である必要があります。
Requires: T shall be EmplaceConstructible into X from *i
コンストラクターは、範囲内の各反復子に対して std::allocator_traits::construct (m, p, *it) メソッドを呼び出すことで実装できると思います (ここで、m - 型 A のアロケーター、p - メモリへのポインター、it - 内の反復子) [i; j) であり、要素には CopyInsertable の概念のみが必要です。これは、コピー/移動に引数が 1 つしか提供されないためです。一方、EmplaceConstructible の概念では、一連の引数から要素を構築する必要があります。その決定には何か理由がありますか?