这个问题也已经提交到Usenet,那里比较合适,但这是一个更大更可靠的论坛。
std::allocator::construct
被定义为使用括号将其参数参数包转发到对象构造,即直接初始化。
如果它使用大括号,也就是统一初始化,我们可以从函数初始化聚合数据类型,例如std::make_shared
和
container::emplace
。此外,可以将初始化列表的内容放入此类函数的参数列表中,从而解决initializer_list
转发下的类型推导问题。
是否考虑并拒绝了这种替代方案?转换未来的标准是否为时已晚?看起来这将是一个突破性的变化,但不是特别令人发指的变化。