10 #ifndef MSGPACK_V1_TYPE_CPP11_UNORDERED_MAP_HPP
11 #define MSGPACK_V1_TYPE_CPP11_UNORDERED_MAP_HPP
17 #include <unordered_map>
27 template <
typename K,
typename V,
typename Hash,
typename Compare,
typename Alloc>
29 std::unordered_map<K, V, Hash, Compare, Alloc>,
30 typename std::enable_if<msgpack::has_as<K>::value || msgpack::has_as<V>::value>::type> {
35 std::unordered_map<K, V, Hash, Compare, Alloc> v;
36 for (; p != pend; ++p) {
43 template <
typename K,
typename V,
typename Hash,
typename Compare,
typename Alloc>
44 struct convert<std::unordered_map<K, V, Hash, Compare, Alloc>> {
49 std::unordered_map<K, V, Hash, Compare, Alloc> tmp;
50 for(; p != pend; ++p) {
60 template <
typename K,
typename V,
typename Hash,
typename Compare,
typename Alloc>
61 struct pack<std::unordered_map<K, V, Hash, Compare, Alloc>> {
62 template <
typename Stream>
66 for(
typename std::unordered_map<K, V, Hash, Compare, Alloc>::const_iterator it(v.begin()), it_end(v.end());
75 template <
typename K,
typename V,
typename Hash,
typename Compare,
typename Alloc>
88 typename std::unordered_map<K, V, Hash, Compare, Alloc>::const_iterator it(v.begin());
100 template <
typename K,
typename V,
typename Hash,
typename Compare,
typename Alloc>
102 std::unordered_multimap<K, V, Hash, Compare, Alloc>,
103 typename std::enable_if<msgpack::has_as<K>::value || msgpack::has_as<V>::value>::type> {
108 std::unordered_multimap<K, V, Hash, Compare, Alloc> v;
109 for (; p != pend; ++p) {
116 template <
typename K,
typename V,
typename Hash,
typename Compare,
typename Alloc>
117 struct convert<std::unordered_multimap<K, V, Hash, Compare, Alloc>> {
122 std::unordered_multimap<K, V, Hash, Compare, Alloc> tmp;
123 for(; p != pend; ++p) {
124 std::pair<K, V> value;
134 template <
typename K,
typename V,
typename Hash,
typename Compare,
typename Alloc>
135 struct pack<std::unordered_multimap<K, V, Hash, Compare, Alloc>> {
136 template <
typename Stream>
140 for(
typename std::unordered_multimap<K, V, Hash, Compare, Alloc>::const_iterator it(v.begin()), it_end(v.end());
141 it != it_end; ++it) {
149 template <
typename K,
typename V,
typename Hash,
typename Compare,
typename Alloc>
162 typename std::unordered_multimap<K, V, Hash, Compare, Alloc>::const_iterator it(v.begin());
182 #endif // MSGPACK_V1_TYPE_CPP11_UNORDERED_MAP_HPP