C++なら極めて分かりやすいんだがな

namespace foo{
#define T1 char
typedef char T2;
}

namespace bar{
class T1; // NG
class T2; // OK
}