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
+19 -9
View File
@@ -24,27 +24,37 @@
// TODO: Implement
namespace bitsery {
namespace ext {
template <template <typename> class TPtrManager,
template <typename>
class TPolymorphicContext,
typename RTTI>
class MultiplePointerObjectExtensionBase
: public bitsery::ext::pointer_utils::
PointerObjectExtensionBase<TPtrManager, TPolymorphicContext, RTTI> {};
: public pointer_utils::
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>
using MultiplePointerOwnerBase = MultiplePointerObjectExtensionBase<
bitsery::ext::pointer_details::PtrOwnerManager,
bitsery::ext::PolymorphicContext,
using MultiplePointerOwnerBase =
MultiplePointerObjectExtensionBase<pointer_details::PtrOwnerManager,
PolymorphicContext,
RTTI>;
using MultiplePointerOwner =
MultiplePointerOwnerBase<bitsery::ext::StandardRTTI>;
using MultiplePointerOwner = MultiplePointerOwnerBase<StandardRTTI>;
} // namespace ext
namespace bitsery {
namespace traits {
template <typename T, typename RTTI>
struct ExtensionTraits<::MultiplePointerOwnerBase<RTTI>, T*> {
struct ExtensionTraits<ext::MultiplePointerOwnerBase<RTTI>, T*> {
using TValue = T;
static constexpr bool SupportValueOverload = true;
static constexpr bool SupportObjectOverload = true;