一个类如何继承自己?

Pau*_*sen 1 c++ inheritance templates

我不明白以下代码:

template <int _id> class Model;

template <int _id> class Model : public Model<0> { ... };
Run Code Online (Sandbox Code Playgroud)

所以,类模型似乎从它本身派生出来.这不能用EDG或Gcc编译(错误:无效使用不完整类型'类Model <0>'),但Visual Studio接受它.什么编译器是正确的,出于什么原因?

use*_*042 6

所以,类模型似乎从它本身派生出来.

该类不继承自己.每个实例Model<N>都是一个不同的,无关的类.

这不能用EDG或Gcc编译(错误:无效使用不完整类型'类Model <0>'),但Visual Studio接受它.什么编译器是正确的,出于什么原因?

海湾合作委员会是正确的,在使用时,Model<0>是不完整的.继承需要完整的类声明.