2017-12-21 21 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

タイプはintです。 Constは単なる読み込み専用の注釈であり、プログラマのための制限です。 – chris01

+0

@ chris01いいえ、 'const int'は' int'とは異なる型です。 –

答えて

2

iの種類が実際const intが、typeid(i)から返さstd::type_infoオブジェクトはintを参照しません。 constは、typeidによって無視されるためです。全ての場合において

、CV-修飾子はタイプIDによって無視される(すなわち、typeid(T) == typeid(const T)ある)

+0

Meh、 'i'の型は' const int'ですが、typeidがconstを無視するという事実はそれを変更しません。 –

関連する問題