テンプレート化されたクラスのベクトルの反復子を返そうとしています (それが違いを生むかどうかはわかりませんが、その可能性があることを読んだので、言及したいと思いました)。問題は、これを試してみると、C++ が default-int をサポートしていないというエラーが表示されることです。私はオンラインで見てきましたが、フォーラムや説明で見ることができるものから、私はそれほど遠くないとは思いません.コンパイルできません.
template<class T>
class Table
{
public:
...
vector<shared_ptr<vector<T>>>::iterator GetRowIterator();
//vector<shared_ptr<vector<CellValueType> > >::const_iterator GetRowIterator();
...
protected:
vector<shared_ptr<vector<CellValueType> > > data; //outside vector is rows, inside vector is columns
...
};
vector<shared_ptr<vector<T> > >::const_iterator Table<T>::GetRowIterator()
{
return data.begin();
}
私が得るエラーは次のとおりです。
error C2146: syntax error : missing ';' before identifier 'GetRowIterator'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
編集:
終了山括弧を変更して、互いに接近しないようにしました-同じエラー。
なぜこれが起こっているのかについて何か考えはありますか?
いつものように、事前にアドバイス/ヘルプをありがとう!