如何让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?
我不能使用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
这太难问了吗?
答案 0 :(得分:8)
答案 1 :(得分:2)
扩展Nawaz的答案:当你typedef A B
时,B
只是A
的别名,而不是单独的类型。 <{1}}和x
在你的例子中只是y
。
如果要创建新类型,请使用一个成员int
。
答案 2 :(得分:1)
只要T1
和T2
是相同类型的typedef,就不会收到任何警告!