3
所以我有这样的代码:添加类型名称会导致程序失败的编译
#include "type_traits"
struct A{
int member;
};
struct B{
typedef A object;
typedef int member;
};
typedef std::integral_constant<B::member, B::object::*, &A::member> type;
但是,如果我改变最后的行:
typedef std::integral_constant<typename B::member, typename B::object::*, &A::member> type;
的程序将无法编译....
为什么添加typename
说明符会导致程序无法编译?这对我来说尤其令人惊讶,因为我认为在这种情况下我需要它。
注: 使用GCC 5.1.0