【发布时间】:2017-10-31 17:22:34
【问题描述】:
我有一个存储标量以及相关物理维度指数的类:
template <int L, int M, int T, int C, int K, int S, int I>
class Dimension<L, M, T, C, K, S, I>
{
...
}
我想构建一个类似于类 (Vec) 的向量,具有静态存储,用于存储这些对象的数组。 我假设 Vec 类模板看起来像:
template <Dimension<L, M, T, C, K, S, I> D, size_t N>
class Vec
{
...
}
但这会导致错误,因为模板参数D 取决于模板参数(L、M、T、C、K、S、I)。我已经通过蛮力尝试了几件事,但我只是猜测,并且希望由具有该问题的专业知识的人向其展示正确的方法。
我已经看到将template<class> 插入模板参数的示例,但我不太了解它实现了什么,或者即使它实际上是否适用。非常感谢您的帮助。
请注意,我知道这些类示例之前已经实现过,可能以更好的方式实现。
编辑:修正了一个错字并更改了 Vec 类的名称。
【问题讨论】:
-
你看过
std::array吗? -
正如我所说,我知道这种事情已经完成(例如 std::array 而不是这个向量类),但我有兴趣构建自己的。我特别希望将存储的类限制为 Dimension 类型,而不是任何类 T。
标签: c++ templates parameters template-templates