diff --git a/deps/ox/src/ox/model/modelops.hpp b/deps/ox/src/ox/model/modelops.hpp index 9fe92835..1b935974 100644 --- a/deps/ox/src/ox/model/modelops.hpp +++ b/deps/ox/src/ox/model/modelops.hpp @@ -94,7 +94,7 @@ class Copier { MemberList *m_dst = nullptr; public: - constexpr Copier(MemberList *dst) noexcept: m_dst(dst) { + constexpr explicit Copier(MemberList *dst) noexcept: m_dst(dst) { } template @@ -135,7 +135,7 @@ class Copier { } template - constexpr void setTypeInfo(const char* = T::TypeName, int = T::Fields) noexcept { + constexpr void setTypeInfo(const char* = T::TypeName, int = T::TypeVersion, int = ModelFieldCount_v) noexcept { } [[nodiscard]] @@ -153,7 +153,7 @@ class Mover { MemberList *m_dst = nullptr; public: - constexpr Mover(MemberList *dst) noexcept: m_dst(dst) { + constexpr explicit Mover(MemberList *dst) noexcept: m_dst(dst) { } template @@ -284,24 +284,6 @@ class Equals { } -template -constexpr void moveModel(ModelObject *dst, T *src) noexcept { - constexpr auto size = ModelFieldCount_v; - detail::MemberList dstFields; - detail::Mover mover(&dstFields); - oxIgnoreError(model(&dstFields, dst)); - oxIgnoreError(model(&mover, src)); -} - -template -constexpr void moveModel(T *dst, ModelObject *src) noexcept { - constexpr auto size = ModelFieldCount_v; - detail::MemberList dstFields; - detail::Mover mover(&dstFields); - oxIgnoreError(model(&dstFields, dst)); - oxIgnoreError(model(&mover, src)); -} - template constexpr void moveModel(T *dst, T *src) noexcept { constexpr auto size = ModelFieldCount_v; @@ -311,24 +293,6 @@ constexpr void moveModel(T *dst, T *src) noexcept { oxIgnoreError(model(&mover, src)); } -template -constexpr void copyModel(ModelObject *dst, const T *src) noexcept { - constexpr auto size = ModelFieldCount_v; - detail::MemberList dstFields; - detail::Copier copier(&dstFields); - oxIgnoreError(model(&dstFields, dst)); - oxIgnoreError(model(&copier, src)); -} - -template -constexpr void copyModel(T *dst, const ModelObject *src) noexcept { - constexpr auto size = ModelFieldCount_v; - detail::MemberList dstFields; - detail::Copier copier(&dstFields); - oxIgnoreError(model(&dstFields, dst)); - oxIgnoreError(model(&copier, src)); -} - template constexpr void copyModel(T *dst, const T *src) noexcept { constexpr auto size = ModelFieldCount_v;