C++의 typeid
연산자는 텍스트 이름을 생성 할 수있는 클래스 std::type_info
의 객체를 반환합니다. 그러나, 나는 모든 다형성 클래스에 대해 유일한 숫자 식별자를 얻는 것에 관심이있다. (하나의 프로그램 실행의 범위 내에서 고유 한 - 반드시 실행 사이) 실제로typeid를 통한 클래스의 숫자 고유 식별자
, 난 그냥 포인터 역 참조 vptr
의 내용을 읽을 수 있습니다 -하지만이 우아한도 휴대도 할 것이다. 나는 휴대용 방식을 선호합니다.
typeid
연산자를 사용하여 클래스에 대해 "안전한"숫자 식별자를 사용할 수 있습니까? 예를 들어, std::type_info
구조의 주소가 주어진 클래스의 모든 typeid
호출에 대해 같다고 계산할 수 있습니까? 아니면 name()
포인터일까요?
. 이것은 문자열 리터럴이기 때문에 컴파일시에도 해석되어야합니다. 적어도 저것은 내가 그 생각을 가지고있는 "보석"이 말한 것입니다 ... 나의 경험은 다릅니다. 나에게는 그 솔루션의 오버 헤드가 너무 높습니다. 그러나 잘, 그것은 확실히 휴대 가능하다. .. 그래. – Damon
여기 실제로 해결하려는 문제는 무엇입니까? –
객체의 주소를'void ** '로 캐스팅하지 못하게하고 vptr을 역 참조하려고하는 문제. : D 그리고 더 진지하게 - 2 차원 vtable과 비슷한 것. – Kos