C++0x typeof

decltypeでこれできるかな

decltypeでmapのvalue_typeを取得する方法

インスタンスからメンバの型を取得する



いろいろ試した結果、これはわりと必須かもしれない


typeof.hpp

#ifndef TYPEOF_INCLUDE
#define TYPEOF_INCLUDE

#include <utility>

#define typeof(X) std::identity<decltype(X)>::type

#endif // TYPEOF_INCLUDE
#include <iostream>
#include <string>
#include <map>
#include "typeof.hpp"

using namespace std;

int main()
{
    map<string, int> dict;

    dict["Akira"]   = 23;
    dict["Johnny"]  = 38;
    dict["Millia"]  = 16;

    for (typeof(dict)::const_reference item : dict) {
        cout << item.first << "," << item.second << endl;
    }

    return 0;
}

remove_cv 必要?



C++0x decltype