컴파일 타임에 해당 파생 유형을 기반으로 클래스에 대한 해시를 생성하려고합니다. 오늘은 그것을 좋아 생성 : (매우 불필요) 실행컴파일 타임에 C++ 유형 ID
template<class Type>
class TypeBase
{
public:
static const unsigned s_kID;
};
template<class Type>
const unsigned TypeBase<Type>::s_kID = hash(typeid(Type));
을하지만이 발생 시간 초기화 코드
(해시 (..) 함수는 표준 :있는 type_info :: 이름()을 기반으로 간단한 해시를 않습니다)아이디어?
해시 충돌이 발생하거나 문제가되지 않을 위험이 있습니까? –
@ Andreas : 해시를 만들 때 해시 항목이있는지도도 있습니다. 따라서 충돌이 있는지 확인할 수 있습니다. 게다가, 수업의 수는 아마 20 일 것입니다. 그래서 나는 그것도 안전하다고 생각합니다. – Robert
'id = ++ someGlobalCounter'와 같은 것을 할 수 없습니까? (나는 이것이 중요하지 않고 호기심이없는 것임을 깨달았다.) –