このようなコードを書くことはできますか
class Foo
{
typedef Foo type;
};
これについて、標準に制限はありません。
注:コンパイラ: Apple GCC、OS: OSX 10.7
GCC はこれに問題はないと判断し、type
後で Foo の定義でこの型を使用できます。type
ただし、 Foo 以外で型を使用することはできません。
そのコードを書くことは可能です。type
とFoo
は予約語ではなく、C++では構造体またはクラス内で型を定義できます。実際、これらはメタプログラミングや型のイントロスペクションのテンプレートで頻繁に使用されています。言語のその側面の詳細については、C++で依存する名前をどのように理解するかを参照してください。