以元组作为模板参数的 C++ 可变参数模板

C++ variadic template with tuple as template parameter

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

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

这样,我可以一次处理一个维度的 n 维点。 当然,我可以通过声明来避免 std::tuple 部分 template<typename T, typename... Args> 并简单地通过 每个维度的坐标在它自己的向量中, 但这会产生以下困难:需要以某种方式将它们结合在一起 args...中隐藏的坐标。因此,我想要一种更清洁的方式 明确表示底层类型是可变元组。 如何做到这一点?

您可以将其声明为偏特化,如

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

然后像这样使用它

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