为什么以下内容无法编译(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
其用作成员函数中的类型,但不能用作成员变量的类型。