如何用模板参数参数包的计算结果填充元组



我想对模板参数进行一些计算,并将它们插入元组中并返回。不过我似乎搞不懂语法。有可能吗?

戈德堡连杆

#include <tuple>
template <typename TupleT, int ...values>
auto create_tuple() {
// Fold expressions does not seem to work
// return TupleT{((values + 1) , ...)};
// This does not work either
// return TupleT{(values + 1) , ...};
// Expected result
// return TupleT{1 + 1, 1 + 2}
}
int main() {
auto t = create_tuple<std::tuple<int, int>, 1, 2>(); // Usage, cannot be changed
}

这只是一个传递给构造函数的普通参数包。

return TupleT{(values + 1)...};

现场演示

您也可以使用std::make_tuple(...),我发现它富有表现力且干净:

return std::make_tuple((values + 1)...);

最新更新