GCC에서 typeid.name()을 사용하여 변형되지 않은 유형 이름 제거
유형 이름을 검색하기 위해 typeid.name()을 활용하는 경우 , 다른 컴파일러는 다양한 결과를 제공할 수 있습니다. 예를 들어, GCC는 "잘못된" 이름을 반환하는 것으로 알려져 있지만 Visual C는 잘린 이름을 제공합니다.
이러한 불일치는 typeid.name()의 반환 값이 구현에 따라 정의된다는 사실에서 비롯됩니다. C 표준에 따라 각 구현에는 유형 이름을 표시하는 방법을 결정할 재량권이 있습니다.
GCC의 경우 typeid.name()에서 반환된 이름은 "맹글링된 이름"이라는 추가 정보를 전달합니다. " 이 형식에는 내부 컴파일러 목적으로 사용되는 장식이 포함되어 있습니다. 수정된 유형 이름을 얻으려면 c filt 명령 또는 __cxa_demangle 함수를 사용할 수 있습니다.
c filt 4Blah
출력: struct Blah
__cxa_demangle("4Blah", 널포인트, 널포인트, nullptr)
출력: Blah
이러한 도구를 활용하면 데코레이팅된 유형 이름을 정리하고 원하는 정리된 표현을 검색할 수 있습니다.
위 내용은 typeid.name()에서 GCC의 잘못된 유형 이름을 어떻게 해독할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!