#include <Core/Core.h> using namespace Upp; template <class K, class T> struct UMap : VectorMap<K, T>{ T& Add(const K& k, const T& x) { return value[FindAdd(k)]=x; } T& AddPick(const K& k, T rval_ x) { return value[FindAdd(k)]=pick(x); } T& Add(const K& k) { return value[FindAdd(k)]=K(); } }; CONSOLE_APP_MAIN { UMap<int, String> map; String s="Hello, world!"; map.Add(1)="Hello"; DUMPC(map); // unfortunately String doens't have move assignment(xfer) operator // so the following downgraded to Add map.AddPick(1, pick(s)); DUMPC(map); map.Add(1,"Unique Vector Map"); DUMPC(map); }
Report message to a moderator