为什么const不会在输出中显示为typeid()。name(),c ++

时间:2017-12-21 14:36:24

标签: c++ const typeid

我是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。

1 个答案:

答案 0 :(得分:2)

i的类型确实是const int,但std::type_info返回的typeid(i)对象确实引用了int;因为typeid会忽略const

  

在所有情况下,typeid都会忽略cv限定符(即typeid(T) == typeid(const T)