如何将元组转换为初始值设定项列表

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)

但用元组而不是参数包

Nat*_*ica 5

您可以使用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)