我可以写这样的代码吗
class Foo
{
typedef Foo type;
};
我认为标准没有任何限制。
答案 0 :(得分:1)
注意:编译器:Apple GCC,操作系统:OSX 10.7
GCC发现没有错,我可以在Foo的定义中使用类型type
。但是,您不能在Foo之外使用类型type
。
答案 1 :(得分:0)
可以编写该代码。 type
和Foo
不是保留字,C ++允许在结构或类中定义类型。实际上,它们大量用于元编程和类型内省的模板中。有关该语言的更多详细信息,请参阅How do you understand dependent names in C++。