我的编译器是VC ++ 2013和2013 Novmember CTP。
以下代码使VC ++编译器崩溃并报告:
“致命错误C1001:编译器中发生内部错误。”
template<class T>
class A
{
operator T*() const
{
return p;
}
T* p;
};
template<class T>
class B : public A<T>
{
using A::operator T*;
};
int main()
{}
答案 0 :(得分:5)
VC ++编译器中可能存在错误,但您的代码仍然不正确:g ++报告error: 'template<class T> class A' used without template parameters
(link)。 (在不同的编译器上测试代码通常是一个好主意。)
从
更改第15行 using A::operator T*;
到
using A<T>::operator T*;
(即将“A
”更改为“A<T>
”。