【发布时间】:2011-03-04 19:08:51
【问题描述】:
似乎 VS 2008 处理类模板的继承与其他编译器有点不同。 以下代码在 VS 2008 上编译没有任何错误(使用默认选项):
template <typename S, typename T>
class someclass : public non_existent_class
{
T operator() (S s) const {
return T(s);
}
};
问题是,为什么?由于未定义标识符non_existent_class,没有其他编译器能够做到这一点(尝试过 GCC 4.5.0、Intel、Online Comeau、VS 2005)。也许是新的 C++0x 标准中的某些东西证明了这种行为的合理性?
【问题讨论】:
标签: c++ templates inheritance c++11 visual-c++-2008