如何做到这一点:
#include <tuple>
std::tuple<double, int[2]> f()
{
return std::make_tuple(0., {1, 2});
}
int main()
{
f();
return 0;
}
无法从'std :: tuple&lt;&gt;'转换'std :: make_tuple&lt; {}&gt;()'到'std :: tuple'
编译器无法弄清楚要做什么?
答案 0 :(得分:4)
如果您需要使用&#34;编译时矢量&#34;,请尝试array
。
#include <array>
// ...
std::tuple<double, std::array<int, 2>> f() {
return std::make_tuple(0., std::array<int, 2>{1, 2});
}
作为聚合类型,可以使用它进行初始化 最多给出N个初始化器的聚合初始化 可转换为T。
答案 1 :(得分:1)