struct ABC {};
template<typename T>
class DEF
{
void f0(typename T::ab) {} //ERROR
void f1() {typename T::ab var;} //Fine
};
DEF<ABC> obj;
我想如果我不使用类模板的特定成员函数,它永远不会被编译器构造。因此,正如预期f1()
的那样,即使代码编译得很好,因为obj
从不使用它。为什么存在f0()
导致编译错误?我也不用那个。
{MinGW g++ 4.7.2,Windows 7}