在c ++ 14中,我具有以下类型:
std::tuple<int[2], int>;
如何正确初始化它?这个
std::tuple<int[2], int> a {{2,2},3};
给我这个错误:
/ usr / include / c ++ / 5 / tuple:108:25:错误:数组用作初始化程序
与此同时:
std::tuple<std::array<int,2>, int> a {{2,2},3};
可以,但是我希望能够使用标准的C样式数组
答案 0 :(得分:7)
std::tuple
不是汇总,也不提供list-initializer constructor。这样就无法在C数组中使用该类型的列表初始化。
但是您可以使用std::make_tuple
:
auto a = std::make_tuple<int[2], int>({2,2},3);