考虑一下:
template < typename VectorType >
void ff()
{
// This passes.
typedef typename VectorType::value_type VV;
typedef int VV::* MM;
// This FAILS!??
typedef int typename VectorType::value_type::* MMM;
}
为什么第二个失败,在一个 typedef 语句中获得所需 typedef 的正确方法是什么?
我的编译器是 GCC-4.7.2。