以下がコンパイルされないのはなぜですか(MSVC10-しかし、有効なC ++ではないと思われます)。回避策はありますか?
template <typename M>
struct MyClass
{
typedef std::vector<M>::iterator iteratorT;
iteratorT myIterator;
};
エラーはerror C2146: syntax error : missing ';' before identifier 'iteratorT'
です。たくさんのバリエーションを試しましたが、同じ結果になりstd::vector<M>::iterator
ました。メンバー関数の型として使用することはできますが、メンバー変数の型として使用することはできません。