【问题标题】:C++ variadic template with tuple as template parameter以元组作为模板参数的 C++ 可变参数模板
【发布时间】:2021-07-13 05:32:31
【问题描述】:

我想要这样的东西(警告:无效代码):

template<std::tuple<typename T, typename... Args>>
class nDimensionalPoint

这样,我可以一次处理一个维度的n-维点。 当然,我可以通过声明来避免 std::tuple 部分 template&lt;typename T, typename... Args&gt; 只是通过 每个维度中的坐标在它自己的向量中, 但这带来了以下困难:需要以某种方式绑定在一起 隐藏在args... 中的坐标。因此,我想要一种更清洁的方式 明确表明底层类型是可变元组。 如何做到这一点?

【问题讨论】:

    标签: c++ templates variadic-templates


    【解决方案1】:

    您可以将其声明为部分特化

    template<typename>
    class nDimensionalPoint;
    template<typename T, typename... Args>
    class nDimensionalPoint<std::tuple<T, Args...>> {};
    

    然后像这样使用它

    nDimensionalPoint<std::tuple<int, char>> dp ...;
    

    【讨论】:

      猜你喜欢
      • 2016-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      相关资源
      最近更新 更多