我正在为 POD、STL 和像数组这样的复合类型开发小型(漂亮)打印机。在这样做的同时,我也在摆弄初始化列表并遇到以下声明
std::vector<double[3]> arr{ { 10, 11, 12 }, { 20, 21, 22 } };
似乎 VC2013 和 G++ 4.8 都不太满意,并发出一致的错误消息,在这两种情况下对我都不是很有帮助
对于 VC++: error C3074: an array can only be initialized with an initialize-list
对于 G++ 4.8: error: array must be initialized with a brace-enclosed initialize
所以要么初始化列表不能在这里使用,要么我的语法完全不正确?
在类似的方面,以下语法似乎是有效的
std::vector<std::array<int, 3>> arr{ { 10, 11, 12 }, { 20, 21, 22 } };
我的初始化列表可能有什么问题?
- 注意我知道我应该使用
std::array
而不是 C 类型的数组,但我只是在试验。 - 注意如果你不想玩这个,这里有一个IDEONE版本
- 注意另外,如果您可以将我推荐回标准,那将是非常有益的。