C++11で他の言語でよくある型推論が追加された。型名の代わりにautoを使って変数を宣言する。
#include "stdafx.h"
#include <typeinfo>
#include <iostream>
class object {
};
int _tmain(int argc, _TCHAR* argv[])
{
auto hoge1 = 2; // int型になる
auto hoge2 = "hogehoge"; // const char *型になる
auto hoge3 = new object(); // object *型になる
auto hoge4 = 3.14; // double型になる
std::cout << typeid(hoge1).name() << std::endl;
std::cout << typeid(hoge2).name() << std::endl;
std::cout << typeid(hoge3).name() << std::endl;
std::cout << typeid(hoge4).name() << std::endl;
return 0;
}
VisualStdio 2013で試した。
gccでコンパイルする場合は、ちょっといじって(^^;)、-std=c++11とオプションを付けてコンパイルする必要がある。
コメント