次のコードの抜粋は、不可解な MSVC++ コンパイラ エラーの原因です。
template<class T> class Vec : public vector<T>{
public:
Vec() : vector<T>(){}
Vec(int s) : vector<T>(s){}
T& operator[](int i){return at(i); }
const T& operator[](int i)const{ return at(i);}
};
...
エラー:
test.cpp(5) : error C2143: syntax error : missing ',' before '<'
test.cpp(12) : see reference to class template instantiation 'Vec<T>' being compiled
これを修正するにはどうすればよいですか?
- -編集 - -
いくつかのコンテキスト:
The C++ Programming Languageから本質的にコピーして貼り付けたコードをコンパイルしようとしています。私はまだこのコードを完全に理解していません。ただし、その目的は、一部のコードがベクターの範囲外の項目にアクセスしようとしたときに、単に正しくない値を返すのではなく、例外をスローするベクター型を実装することです。