Cách xác định loại ID mạnh trong C++ 11? Đó là posible để thực hiện bí danh của các loại nguyên nhưng nhận được cảnh báo từ trình biên dịch khi bạn kết hợp các loại?Cách xác định loại ID mạnh trong C++ 11?
ví dụ:
using monsterID = int;
using weaponID = int;
auto dragon = monsterID{1};
auto sword = weaponID{1};
dragon = sword; // I want a compiler warning here!!
if(dragon == sword){ // also I want a compiler warning here!!
// you should not mix weapons with monsters!!!
}
Bạn không thể làm điều này với typedefs. Tạo các loại mới. Có gì đó trong Boost IIRC. –
http://stackoverflow.com/q/18251447/560648 –
Quan tâm là tính năng mới được đề xuất này cho C++ 1y: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/ 2013/n3515.pdf –