30class ser_shared_ptr_packer
45 std::map<std::weak_ptr<const void>, size_t, std::owner_less<void>> shared_ptr_map = { { {}, 0 } };
51 ser_shared_ptr_packer() =
default;
52 ser_shared_ptr_packer(
const ser_shared_ptr_packer&) =
delete;
53 ser_shared_ptr_packer& operator=(
const ser_shared_ptr_packer&) =
delete;
54 ~ser_shared_ptr_packer() =
default;
57 std::pair<size_t, bool> get_shared_ptr_owner_tag(
const std::weak_ptr<const void>& ptr);
60class ser_shared_ptr_unpacker
72 std::deque<std::shared_ptr<void>> shared_ptr_owners;
75 ser_shared_ptr_unpacker() =
default;
76 ser_shared_ptr_unpacker(
const ser_shared_ptr_unpacker&) =
delete;
77 ser_shared_ptr_unpacker& operator=(
const ser_shared_ptr_unpacker&) =
delete;
78 ~ser_shared_ptr_unpacker() =
default;
81 std::pair<std::shared_ptr<void>&,
bool> get_shared_ptr_owner(
size_t tag);