class Type {};
class Base {};
template<typename T>
class BaseImp{};
template<>
class BaseImp<Type>{};
int main()
{
Base* x = new BaseImp<Type>();
return 0;
}
error C2440: “初始化”: 无法从“BaseImp<Type> *”转换为“Base *”
note: 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
我觉得这种应该是编译器能够自动识别的, 一定要手动进行 reinterpret_cast 的理由何在? 还是说编译器就是这么任性....
MSVC2015编译.