48 auto policy = begin(p, object, valid_meta);
50 body_fn([&p](
auto& v,
const Meta& meta) {
73 auto body = [&p, &vs = container, &body_fn](
auto&& fpup) {
74 auto size =
static_cast<uint32_t>(vs.size());
78 pup_object(p, vs, data, [&body_fn, size](
auto&& fpup_data) {
79 body_fn(fpup_data, size);
82 pup_object(p, container, meta, body);
142 template <
typename P,
144 typename = enable_if_pup_iterable<Iterable>>
149 auto pup_entries = [&vs = container](
auto&& fpup,
auto size) {
156 pup_object_container(p, container, meta, pup_entries);
pup object using its component pup functions
void pup_object_container(Pupper< P > &p, Iterable container, const Meta &meta, BodyFn &&body_fn)
A pup_object() for dealing with iterable types.
void pup_object(Pupper< P > &p, T &object, const Meta &meta, Fn &&body_fn)
Describes a type by enumerating its members, used in conjunction with pup() implementations.
void pup_iterable(Pupper< P > &p, Iterable &container, const Meta &meta)
Pups most STL-like containers, including strings.
PupPolicy
Controls an object's pup() behavior.
Base class for working with puppable types.