1 #ifndef PROTON_MAPPED_TYPE_HEADER
2 #define PROTON_MAPPED_TYPE_HEADER
6 template <
typename mapT,
typename K>
7 typename mapT::mapped_type
get(
const mapT& x, K&& key)
14 template <
typename mapT,
typename K,
typename V>
15 typename mapT::mapped_type
get(
const mapT& x, K&& key, V&& dft)
23 template <
typename mapT,
typename K>
24 bool test_get(
typename mapT::mapped_type& v,
const mapT& x, K&& key)
33 template <
typename mapT,
typename K,
typename V>
34 bool test_insert(mapT& x, K&& k, V&& v)
36 return x.insert({k,v}).second;
39 template <
typename mapT,
typename K,
typename V>
40 bool test_insert_or_get(mapT& x, K&& k, V& v)
42 auto p=x.insert({k,v});
49 template <
typename mapT,
typename K,
typename ...argT>
50 typename mapT::mapped_type& get_or_create(
bool& hit, mapT& x, K&& k, argT&& ... v)
61 p=x.insert({k,
typename mapT::mapped_type(v...)}).first;
68 #endif // PROTON_MAPPED_TYPE_HEADER