…, vN をそれぞれ V1, V2, …, VN 型 のコンストラクタ引数、alloc を Alloc 型のアロケータとすると… • std::uses_allocator_v<T, Alloc> が false で、かつ std::is_constructible_v<T, V1, V2, ..., VN> が true なら、obj(v1, v2, ..., vN) として構築 • そうでなくて、std::uses_allocator_v<T, Alloc> が true で、かつ std::is_constructible_v<T, std::allocator_arg_t, Alloc, V1, V2, ..., VN> が true な ら、obj(std::allocator_arg, alloc, v1, v2, ..., vN) として構築 • そうでなくて、std::uses_allocator_v<T, Alloc> が true で、かつ std::is_constructible_v<T, V1, V2, ..., VN, Alloc> が true なら、obj(v1, v2, ..., vN, alloc) として構築 • 上記のいずれでもない場合、ill-formed