18 typename = enable_if_puppable_container<Container>>
23 pup_iterable(p, container, meta);
32 template <
typename ...>
typename Map,
35 typename = enable_if_puppable_map<Map<K, V>>>
40 pup_object_container(p, map, meta, [&map](
auto&& fpup,
auto size) {
43 for (
auto i = 0u; size > i; i++) {
46 map[kv.first] = kv.second;
49 for (
auto& entry : map) {
50 std::pair<K, V> kv = entry;
60 template <
typename P,
typename K,
typename V>
62 pup_object(p, pair, meta, [&pair](
auto&& fpup) {
63 fpup(pair.first,
"key");
64 fpup(pair.second,
"value");
void pup(Pupper< P > &p, std::pair< K, V > &pair, const Meta &meta)
Pups std::pair, used for pupping associative maps.
void pup(Pupper< P > &p, Container &container, const Meta &meta)
Pups STL-like sequential containers, but not std::string.
void pup(Pupper< P > &p, Map< K, V > &map, const Meta &meta)
Pups STL-like associative maps.
Base class for working with puppable types.