我有一个类模板的问题.我希望类中的私有数据是某种数字类型的向量的向量,即:
std::vector<std::vector<double> >
std::vector<std::vector<std::complex<double> > >
Run Code Online (Sandbox Code Playgroud)
但我想要矢量的类型(我使用第三方向量库和stl向量),以及要模板化的元素类型.我尝试过模板模板,但现在我不认为这是我的问题的解决方案.一个高度简化的例子是:
#include <complex>
#include <vector>
template<typename T>
class Fred {
std::vector<T> data_;
};
int main(){
Fred<std::vector<double> > works;
//Fred<std::vector<std::complex<double> > doesnt_work;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如图所示它编译得很好,但如果我取消注释main中的第二行,我得到错误(g ++ 4.6):
error: template argument 1 is invalid
Run Code Online (Sandbox Code Playgroud)
为什么我会收到此错误?有没有人有建议的解决方案?谢谢!
For*_*veR 20
#include <complex>
#include <vector>
template<typename T>
class Fred {
std::vector<T> data_;
};
int main(){
//Fred<std::vector<double> > works;
Fred<std::vector<std::complex<double> > > doesnt_work;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
效果很好.你>在宣言中错过第三名doesnt_work.
| 归档时间: |
|
| 查看次数: |
17668 次 |
| 最近记录: |