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 必要?