假设我有一个变量 auto x
,我想使用大括号初始化将其初始化为 7
,很简单:
auto x {7};
除了我了解到 x 不是一个整数,而是一个初始化列表本身。为什么?委员会决定 auto
应该在单个 auto 值的情况下获取初始化列表的具体原因是什么,或者他们是否希望我们只是意识到这些不应该一起使用。 我似乎想不出我希望将初始化列表存储到 auto 而不是值的可能原因
最佳答案
一个非常实际的答案是,“为什么要选择 int
?”或者 double
,或者任何带有 int 单参数构造函数的 UDT?通过拒绝推导具体类型,编译器保留了更通用的初始化列表的任何可能应用。
关于c++ - 为什么他们会对某些初始化列表进行特殊处理,而不是对它们一视同仁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16571725/