Move the derived bitsery extension to bitsery::ext

To make it easier to move it over later and to make the implementation
slightly less verbose.
This commit is contained in:
Robbert van der Helm
2020-03-09 12:39:06 +01:00
parent cd8d12094b
commit 6b30100611
+20 -10
View File
@@ -24,27 +24,37 @@
// TODO: Implement // TODO: Implement
namespace bitsery {
namespace ext {
template <template <typename> class TPtrManager, template <template <typename> class TPtrManager,
template <typename> template <typename>
class TPolymorphicContext, class TPolymorphicContext,
typename RTTI> typename RTTI>
class MultiplePointerObjectExtensionBase class MultiplePointerObjectExtensionBase
: public bitsery::ext::pointer_utils:: : public pointer_utils::
PointerObjectExtensionBase<TPtrManager, TPolymorphicContext, RTTI> {}; PointerObjectExtensionBase<TPtrManager, TPolymorphicContext, RTTI> {
// explicit PointerObjectExtensionBase(
// PointerType ptrType = PointerType::Nullable,
// MemResourceBase* resource = nullptr,
// bool resourcePropagate = false)
// : _ptrType{ptrType},
// _resourcePropagate{resourcePropagate},
// _resource{resource} {}
};
template <typename RTTI> template <typename RTTI>
using MultiplePointerOwnerBase = MultiplePointerObjectExtensionBase< using MultiplePointerOwnerBase =
bitsery::ext::pointer_details::PtrOwnerManager, MultiplePointerObjectExtensionBase<pointer_details::PtrOwnerManager,
bitsery::ext::PolymorphicContext, PolymorphicContext,
RTTI>; RTTI>;
using MultiplePointerOwner = using MultiplePointerOwner = MultiplePointerOwnerBase<StandardRTTI>;
MultiplePointerOwnerBase<bitsery::ext::StandardRTTI>;
} // namespace ext
namespace bitsery {
namespace traits { namespace traits {
template <typename T, typename RTTI> template <typename T, typename RTTI>
struct ExtensionTraits<::MultiplePointerOwnerBase<RTTI>, T*> { struct ExtensionTraits<ext::MultiplePointerOwnerBase<RTTI>, T*> {
using TValue = T; using TValue = T;
static constexpr bool SupportValueOverload = true; static constexpr bool SupportValueOverload = true;
static constexpr bool SupportObjectOverload = true; static constexpr bool SupportObjectOverload = true;