2017-12-21 25 views
1

저는 C++의 초보자입니다.const가 typeid()에 의해 출력에 표시되지 않는 이유 name(), C++

#include <iostream> 
#include <typeinfo> 

int main() 
{ 
    const int i = 10; 
    std::cout << typeid(i).name() << std::endl; 
} 

i의 유형은 const int해야하지만, 왜 결과는 내 노트북에 int입니까? Windows 10, Visual Studio IDE를 사용하고 있습니다.

+0

유형 ID에 의해 무시된다. Const는 프로그래머를위한 읽기 전용 및 제한 사항에 대한 주석 일뿐입니다. – chris01

+0

@ chris01 아니요,'const int'는'int'와는 다른 타입입니다. –

답변

2

i의 종류는 참으로 const int이지만, std::type_info 객체가 int를 참조 않습니다 typeid(i)에서 반환; const이 (가) typeid에 의해 무시되기 때문입니다. 모든 경우

은 CV-한정자는 타입 INT (즉, typeid(T) == typeid(const T) 인)

+0

Meh,'i'의 타입은 여전히'const int'이고, typeid가 const를 무시한다는 사실은 그것을 변경하지 않습니다. –