【发布时间】:2021-02-16 09:12:38
【问题描述】:
为什么不只有一种性能最好的类型,要在编译时定义一个列表?
基准很明确,constexpr std::initializer_list 更快,使用甚至更少的内存,IO-reads 比constexpr std::array 少得惊人:
https://build-bench.com/b/1EDAcFjJ6NACk4Pg4tG2nbsEx0A
那么他们为什么不实现std::initializer_list 的数组订阅方法使std::array 变得不必要。
【问题讨论】:
-
您是否曾经觉得需要更改数组中的值?
-
是的。
std::initializer_list归结为T(*)[],但该 C 数组的 1 个值也可以更改...我没有得到你的反对意见,真的。 -
好吧,你终于可以投我的反对票了。
-
std::initializer_list是为特定用途而设计的工具,而std::array(或std::span)具有更通用的用途。
标签: c++ c++11 stdarray stdinitializerlist