クラステンプレートに問題があります。 (私は一緒にサードパーティのベクターのライブラリーを使用していC++クラステンプレートがテンプレートです:テンプレート引数が無効です
std::vector<std::vector<double> >
std::vector<std::vector<std::complex<double> > >
しかし、私は、ベクターの種類をしたい:私はクラスのプライベートデータが数値型のいくつかの種類のベクトルのベクトルになりたい、すなわち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;
}
それは罰金コンパイル、私はメインの2行目のコメントを解除した場合、私はエラー(G ++ 4.6)を得る示すとおり
error: template argument 1 is invalid
私はこれを取得なぜエラー?誰にも修正案がありますか? ありがとう!
動作しない行の '<'と '>'を数えます。 1つが失われています... –
これは完全に誤解を招く、実際には貧弱なエラーメッセージです。 –
@PeteBecker:恥。私は私の[テンプレートリバーダー](http://stackoverflow.com/a/11723847/596781)を掘り起こす準備をしていました。 –