如何使用std :: array模拟C数组初始化“ int arr [] = {e1,e2,e3,…}”行为?
(注意:这个问题是关于不必指定元素的数量,而仍然允许嵌套类型直接初始化。) 这个问题讨论了C数组(如)所剩下的用法int arr[20];。@James Kanze 在回答中显示了C数组的最后据点之一,它具有独特的初始化特性: int arr[] = { 1, 3, 3, 7, 0, 4, 2, 0, 3, 1, 4, 1, 5, 9 }; 我们不必指定元素的数量,万岁!现在,使用C ++ 11函数std::begin和std::endfrom <iterator>(或您自己的变体)对其进行迭代,您甚至无需考虑其大小。 现在,是否有任何(可能是TMP)方法可以达到相同目的std::array?允许使用宏使它看起来更好。:) ??? std_array = { "here", "be", "elements" }; 编辑:中级版本,从各种答案编译而成,如下所示: #include <array> #include <utility> template<class T, class... Tail, class Elem = typename …