重複の可能性:
typeid() は g++ で余分な文字を返します
cplusplus.comで、C++ ではtypeid関数が変数の型情報を取得できることを知りまし た。しかし、結果は私のマシンでは少し奇妙です。
例えば:
#include <iostream>
#include <typeinfo>
#include <vector>
using namespace std;
class Test
{
};
int main()
{
vector<int> v;
vector<vector<int> > v2;
Test t;
cout<<"typeid for class Test: "<<typeid(t).name()<<endl;
cout<<"typeid for vector<int>: "<<typeid(v).name()<<endl;
cout<<"typeid for vector<vector<<int> >: "<<typeid(v2).name()<<endl;
return 0;
}
このコードを実行すると、マシンの出力は次のようになります。
typeid for class Test: 4Test
typeid for vector<int>: St6vectorIiSaIiEE
typeid for vector<vector<<int> >: St6vectorIS_IiSaIiEESaIS1_EE
クラス「Test」の前の「4」と、ベクトルの周りの奇妙な文字にかなり混乱しています。誰か説明してくれませんか?ありがとうございました!
私のオペレーティング システムは Fefora 17、g++ (GCC) 4.7.0 20120507 (Red Hat 4.7.0-5) です。