类中的typedef - 应该是否完整

时间:2013-03-21 14:34:42

标签: c++

我可以写这样的代码吗

class Foo
{
    typedef Foo type;
};

我认为标准没有任何限制。

2 个答案:

答案 0 :(得分:1)

注意:编译器:Apple GCC,操作系统:OSX 10.7

GCC发现没有错,我可以在Foo的定义中使用类型type。但是,您不能在Foo之外使用类型type

答案 1 :(得分:0)

可以编写该代码。 typeFoo不是保留字,C ++允许在结构或类中定义类型。实际上,它们大量用于元编程和类型内省的模板中。有关该语言的更多详细信息,请参阅How do you understand dependent names in C++