How to define strong ID types in C++11? It's posible to done alias of integer types but getting warnings from compiler when you mix types?
E.g:
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!!!
}