如何在以模板类作为模板参数的模板类中正确定义模板函数

时间:2019-05-19 20:13:03

标签: c++ templates template-classes

当类具有另一个类作为模板参数时,我在定义类功能时遇到问题。

例外是“模板参数列表应与模板参数列表相对应”

template <class T, size_t N, class arr_traits<T>>
class NDimArray {
     void f();
 }

 template <class T, size_t N, class arr_traits<T>>
 void NDimArray<T, N, arr_traits<T>>::f() { } // here

1 个答案:

答案 0 :(得分:0)

好吧,为arr_traits加上一个别名是正确的,这样我们就不会在模板参数列表中包含类。

template <class T, size_t N, class array_traits = arr_traits<T>>
class NDimArray {
     void f();
 }

 template <class T, size_t N, class arr_traits>
 void NDimArray<T, N, arr_traits<T>>::f() { }