为什么我在 Visual C++ 2010 中的此代码中不断收到以下错误,以及如何在保持成员变量的类型推断能力的同时修复它?
错误 C2825:
'Foo<T>::value_type':
必须是一个类或命名空间时跟'::'
template<class T>
struct Foo
{
typedef typename T::value_type value_type;
template<class M>
void foo(M value_type::*member) const; // error
};
struct S { typedef int value_type; };
int main() { Foo<S> s; }