| 41 | }; |
| 42 | |
| 43 | struct serializer { |
| 44 | template <typename T, typename Buffer, typename Archive> |
| 45 | void operator()(T*, Buffer& b, Archive& ar) { |
| 46 | if (Archive::is_loading::value) { create(type_tag<T>(), b); } |
| 47 | ar& boost::serialization::make_array(reinterpret_cast<T*>(b.ptr), b.size); |
| 48 | } |
| 49 | |
| 50 | template <typename Buffer, typename Archive> |
| 51 | void operator()(void*, Buffer& b, Archive&) { |
| 52 | if (Archive::is_loading::value) { b.ptr = nullptr; } |
| 53 | } |
| 54 | }; |
| 55 | |
| 56 | } // namespace detail |
| 57 |