10 #ifndef MSGPACK_TYPE_TR1_UNORDERED_SET_HPP
11 #define MSGPACK_TYPE_TR1_UNORDERED_SET_HPP
17 #if defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700)
19 #define MSGPACK_HAS_STD_UNORDERED_SET
20 #include <unordered_set>
21 #define MSGPACK_STD_TR1 std
23 #else // defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700)
27 #define MSGPACK_HAS_STD_TR1_UNORDERED_SET
29 #include <tr1/unordered_set>
30 #define MSGPACK_STD_TR1 std::tr1
32 #endif // __GNUC__ >= 4
34 #endif // defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700)
36 #if defined(MSGPACK_STD_TR1)
46 template <
typename T,
typename Hash,
typename Compare,
typename Alloc>
47 struct convert<MSGPACK_STD_TR1::unordered_set<T, Hash, Compare, Alloc> > {
52 MSGPACK_STD_TR1::unordered_set<T, Hash, Compare, Alloc> tmp;
55 tmp.insert(p->
as<T>());
62 template <
typename T,
typename Hash,
typename Compare,
typename Alloc>
63 struct pack<MSGPACK_STD_TR1::unordered_set<T, Hash, Compare, Alloc> > {
64 template <
typename Stream>
68 for(
typename MSGPACK_STD_TR1::unordered_set<T, Hash, Compare, Alloc>::const_iterator it(v.begin()), it_end(v.end());
76 template <
typename T,
typename Hash,
typename Compare,
typename Alloc>
77 struct object_with_zone<MSGPACK_STD_TR1::unordered_set<T, Hash, Compare, Alloc> > {
89 typename MSGPACK_STD_TR1::unordered_set<T, Hash, Compare, Alloc>::const_iterator it(v.begin());
100 template <
typename T,
typename Hash,
typename Compare,
typename Alloc>
101 struct convert<MSGPACK_STD_TR1::unordered_multiset<T, Hash, Compare, Alloc> > {
106 MSGPACK_STD_TR1::unordered_multiset<T, Hash, Compare, Alloc> tmp;
109 tmp.insert(p->
as<T>());
116 template <
typename T,
typename Hash,
typename Compare,
typename Alloc>
117 struct pack<MSGPACK_STD_TR1::unordered_multiset<T, Hash, Compare, Alloc> > {
118 template <
typename Stream>
122 for(
typename MSGPACK_STD_TR1::unordered_multiset<T, Hash, Compare, Alloc>::const_iterator it(v.begin()), it_end(v.end());
123 it != it_end; ++it) {
130 template <
typename T,
typename Hash,
typename Compare,
typename Alloc>
131 struct object_with_zone<MSGPACK_STD_TR1::unordered_multiset<T, Hash, Compare, Alloc> > {
143 typename MSGPACK_STD_TR1::unordered_multiset<T, Hash, Compare, Alloc>::const_iterator it(v.begin());
161 #undef MSGPACK_STD_TR1
163 #endif // MSGPACK_STD_TR1
165 #endif // MSGPACK_TYPE_TR1_UNORDERED_SET_HPP