为什么initializer_list没有自动转换为数组?

时间:2015-10-19 22:43:31

标签: c++ c++11

这不起作用:

auto A[] = {1, 2, 3, 4};

原因是{1, 2, 3, 4}被推断为initializer_list,不能用于初始化数组。我的反对意见:

  1. 如果语言可以推断出initializer_list类型的大小,那么为数组做同样的事情也没有问题。模板参数推导将解决不一致类型的问题

  2. initializer_list s并不是容器,而数组“可以”。

  3. 如果元素被自动复制到数组中并且initializer_list“消失”,那就好了,就像用字符串文字初始化数组一样。为什么没有这方面的特殊规则?

0 个答案:

没有答案