Lig*_*ith 2 c++ templates stdtuple
我用 std::make_tuple 函数制作大元组。
像这样的东西
template <class ...T>
QCborArray array(const T&... args) {
return {args...};
}
Run Code Online (Sandbox Code Playgroud)
但用元组而不是参数包
您可以使用std::apply
可变参数 lambda 来执行此操作。那看起来像
template <class Tuple>
QCborArray array(Tuple&& tuple) {
return std::apply([](auto&&... args) { return QCborArray{args...}; },
std::forward<Tuple>(tuple));
}
Run Code Online (Sandbox Code Playgroud)