STL のサンプルソースを眺めていると嵐のような typedef に目に留まるのですが、どうやらスコープがあるらしいですね。だから安心して使っているというわけですね。
int main(int argc, char *argv[]) { { typedef int numeric; numeric number; // OK } numeric number; // エラー! return 0; }
名前空間とブロックを駆使すれば名前の衝突に気を使わなくても済みそうですね。
ちなみに typedef って前方宣言できるんですよね。リスト構造を作る時に便利です。
#include <iostream> typedef struct tagTask Task, *Task; typedef struct tagTask { Task *previous; // 本来は struct tagTask * と Task *next; // 書かなければならない } Task, *Task; int main(int argc, char *argv[]) { Task player; return 0; }
でも、 STL 使うようになってからリストを作らなくなりました。メルマガではまだ初歩の段階なので配列で頑張っていますし…
Contributions