C++ 错误:在“

C++ 错误:在“,c++,eigen,C++,Eigen,我正试图用它已经支持MKL的方式作为后端。在这样做的时候,我碰到了上面的错误。相关片段如下: template <> /*ERROR IN THIS LINE >>>>>*/ inline void assign_scalar_eig2magma<magmaDoubleComplex,dcomplex>(magmaDoubleComplex& magmaScalar, const dcomplex& eigenScalar)

我正试图用它已经支持MKL的方式作为后端。在这样做的时候,我碰到了上面的错误。相关片段如下:

template <>
/*ERROR IN THIS LINE >>>>>*/ inline void assign_scalar_eig2magma<magmaDoubleComplex,dcomplex>(magmaDoubleComplex& magmaScalar, const dcomplex& eigenScalar) {
  magmaScalar.x=eigenScalar.real();
  magmaScalar.y=eigenScalar.imag();
}
据我所知,这个复合物被声明了,但这似乎不是这里的问题

更新:确实是我的错误,这里的模板定义是mkl,应该是magma

template<typename MAGMAType, typename EigenType>
static inline void assign_scalar_eig2mkl(MAGMAType& magmaScalar, const EigenType& eigenScalar) {
  magmaScalar=eigenScalar;
}

范围中是否有主模板assign_scalar_eig2magma的声明?它似乎在抱怨assign_scalar_eig2magma,即@Mike将您的评论作为答案发布之前的事情,我将接受。
template<typename MAGMAType, typename EigenType>
static inline void assign_scalar_eig2mkl(MAGMAType& magmaScalar, const EigenType& eigenScalar) {
  magmaScalar=eigenScalar;
}