昨天我发布了https://stackoverflow.com/questions/20253515/no-idea-as-to-usr-lib-x86-64-linux-gnu-libstdc-so-6-version-cxxabi-1-3-8,我发现之前没有人见过这个错误(我不想失去代表,让其他人去寻找....)我设法重现错误
template<class T>
class Matrix {
protected:
T* data;
int m,n;
public:
Matrix(int M, int N): m(M), n(N) {
data = new T[m*n];
}
~Matrix() { delete[] data; }
};
class Object {
public:
Object() {}
~Object(){}
};
int main(void) {
Matrix<double> test(2,2);
return 0;
}
然而,将Matrix<double>
更改为Matrix<Object>
,这很好。
老实说,我不明白为什么,这是我第一次遇到这样的错误,我不确定与其他时间相比,我做的与众不同。
附录
我非常怀疑自己,我试过“double * test = new double [10];”和东西,并删除它,它工作(令人震惊!不)