declaratorが説明しづらい。specifierは簡単だ。基本的にキーワードか識別子だからだ。しかし、declaratorというのは、非常に面倒だ。しかも、declaratorの意味は、specifierに依存する。
int name ;
とあれば、nameはint型の変数の宣言と定義である。しかし、もし、
extern int name ;
こうなっていた場合、int型の変数の宣言である。さらに、
typedef int name ;
こうなっていた場合、nameはtypedef-nameということになってしまう。
さらに、ポインターやリファレンス、配列、関数までもが、全く別の見た目だが、同じくdeclaratorの中に入っている。
これをなんとかうまく説明しなければならない。さもなくば、specifierとdeclaratorを明確に分けて解説することはできない。
変数や関数を分けて解説するより、規格通りにspecifierとdeclaratorとして解説したほうが、C++の根本的な理解は深まるのだが、さてどうやって分かるように説明したものか。
No comments:
Post a Comment