typedef类型检查?

nak*_*iya 7 c++ types typedef

如何让g ++对typedef进行类型检查?可能吗?即

typedef int T1;
typedef int T2;

T1 x = 5;     //Ok with me
T2 y = x;     //Any way to get an error or a warning here?
Run Code Online (Sandbox Code Playgroud)

我不能使用C++ 0x功能(我不知道他们是否可以这样做.)

编辑:我想要的是这样的:

typedef int BallID;
typedef int BatID;

BatID x = 10;
map<BatID, Bat*> m;
m.insert(make_pair(x, bigbat));        //OK
BallID y = 15;
m.insert(make_pair(y, smallbat));     //Give me a warning at least plz
Run Code Online (Sandbox Code Playgroud)

这要问太多了吗?

Edw*_*nge 8

使用强大的typedef:http://www.boost.org/doc/libs/release/boost/strong_typedef.hpp

  • @nakiya:可能不是,但这不是它的设计目的。在我给出的示例中,您确实需要别名,而不是新类型。但我承认,如果 C++ 也有一种简单的方法来做你想做的事,那将会很有用。 (2认同)
  • @Crazy:就像D有'alias`一样.有时我希望C++看起来像那样. (2认同)