尝试重载 operator = 时遇到错误
不确定代码有什么问题。感谢帮助!
这是我的代码:
矩阵.h
namespace MATRIX{
class Matrix{
// other private methods
public:
// other public methods
template < typename T >
Matrix& operator=(std::list<T> & data) ;
}
};
矩阵.cu
namespace MATRIX{
// other definitions
template < typename T >
Matrix& Matrix::operator=(list<T> & data) {
// method definition
}
}
测试.cu
#include <list>
#include "matrix.h"
// other includes
int main(void){
using namespace std;
using MATRIX::Matrix;
Matrix k_matrix;
list<double> k_list(100);
// initialize k_list
k_matrix = k_list;
}
建造
nvcc -c matrix.cu
nvcc -o test test.cu matrix.o
第二个命令出错
tmpxft_00001f0f_00000000-3_test.cudafe1.cpp:(.text+0x202):
undefined reference to`MATRIX::Matrix& MATRIX::Matrix::operator=<double>
(std::list<double, std::allocator<double> >&)'