6
C++ 11에서 강력한 ID 유형을 정의하는 방법은 무엇입니까? 정수형의 별칭을 작성하는 것이 가능하지만 형식을 혼합 할 때 컴파일러에게 경고가 표시됩니까?C++ 11에서 강력한 ID 유형을 정의하는 방법은 무엇입니까?
예컨대 : 개봉 부스트를 사용하는 경우
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!!!
}
당신은 형식 정의에이 작업을 수행 할 수 없습니다. 새로운 유형을 만드십시오. Boost IIRC에는 뭔가가 있습니다. –
http://stackoverflow.com/q/18251447/560648 –
C++ 1y에서 제안 된 새로운 기능은 다음과 같습니다. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/ 2013/n3515.pdf –