31 #ifndef CEREAL_CONCEPTS_PAIR_ASSOCIATIVE_CONTAINER_HPP_
32 #define CEREAL_CONCEPTS_PAIR_ASSOCIATIVE_CONTAINER_HPP_
39 template <
class Archive,
template <
typename...>
class Map,
typename... Args,
typename =
typename Map<Args...>::mapped_type>
inline
42 ar( make_size_tag(
static_cast<size_type>(map.size()) ) );
44 for(
const auto & i : map )
49 template <
class Archive,
template <
typename...>
class Map,
typename... Args,
typename =
typename Map<Args...>::mapped_type>
inline
53 ar( make_size_tag( size ) );
57 auto hint = map.begin();
58 for(
size_t i = 0; i < size; ++i )
60 typename Map<Args...>::key_type key;
61 typename Map<Args...>::mapped_type value;
64 #ifdef CEREAL_OLDER_GCC
65 hint = map.insert( hint, std::make_pair(std::move(key), std::move(value)) );
66 #else // NOT CEREAL_OLDER_GCC
67 hint = map.emplace_hint( hint, std::move( key ), std::move( value ) );
68 #endif // NOT CEREAL_OLDER_GCC
73 #endif // CEREAL_CONCEPTS_PAIR_ASSOCIATIVE_CONTAINER_HPP_