我正在尝试将std::map
的{{1}}运算符与自定义键类型一起使用:
[]
是否可以使用typedef tuple<DWORD, DWORD, DWORD, DWORD> Version; // Key type
const map<Version, string> codenames {
{ {3,0,1,5}, "Maserati" },
{ {3,0,2,6}, "Elephant" }
};
Version ver{3,0,2,6};
string codename = codenames[ver];
// Error C2678 binary '[': no operator found which takes a left-hand operand of type '...' (or there is no acceptable conversion)
string codename = codenames[{3,0,2,6}];
// Same error
运算符使用该自定义键类型访问值?我正在使用Visual Studio 2015 Update 3。
PS:
问题:std::maps with user-defined types as key不重复,因为它与[]
运算符无关,也不回答此问题。