Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将模板化结构的对象传递给另一个模板化类的成员函数_C++_Templates - Fatal编程技术网

C++ 将模板化结构的对象传递给另一个模板化类的成员函数

C++ 将模板化结构的对象传递给另一个模板化类的成员函数,c++,templates,C++,Templates,我有一个模板类alpha_x give as template <typename T,typename U> struct alpha_x { const T & alpha; const Scalar<U> & x; alpha_x(const T & a_, const Scalar<U> & x_) : alpha(a_), x(x_) {}; }; 模板 结构αx{ 常数T&alpha; 常数

我有一个模板类alpha_x give as

template <typename T,typename U>
struct alpha_x {
    const T & alpha;
    const Scalar<U> & x;
    alpha_x(const T & a_, const Scalar<U> & x_) : alpha(a_), x(x_) {};
};
模板
结构αx{
常数T&alpha;
常数标量&x;
alpha_x(常数T&a_,常数标量&x_):alpha(a_),x(x_){};
};
我还有一个类有一个操作符重载=

template <typename T>
class Scalar{
    ...
    template <typename U,typename V>
    const Scalar<T> & operator = (alpha_x<U,V> c);
    ...
}
模板
类标量{
...
模板
常量标量和运算符=(alpha_x c);
...
}
当我们试图定义这个函数时

template <typename T,typename U,typename V>
const Scalar<T> & Scalar<T>::operator = (alpha_x<U,V> c){
    //do something...
}
模板
常量标量和标量::运算符=(alpha_x c){
//做点什么。。。
}

现在出现了一个错误“模板重新声明中的模板参数太多”。如何对其进行排序?

T
模板参数是类
标量
的模板参数。因此,需要在单独的模板参数列表中指定它

以下将起作用:

模板
模板
常量标量和标量::运算符=(alpha_x c){
//做点什么。。。
}

您是否尝试了
模板模板
?这将对其进行排序。。。谢谢