这不起作用:
auto A[] = {1, 2, 3, 4};
原因是{1, 2, 3, 4}
被推断为initializer_list
,不能用于初始化数组。我的反对意见:
如果语言可以推断出initializer_list
类型的大小,那么为数组做同样的事情也没有问题。模板参数推导将解决不一致类型的问题
initializer_list
s并不是容器,而数组“可以”。
如果元素被自动复制到数组中并且initializer_list
“消失”,那就好了,就像用字符串文字初始化数组一样。为什么没有这方面的特殊规则?