diff --git a/deps/ox/src/ox/model/def.hpp b/deps/ox/src/ox/model/def.hpp index 44ef4ff8..fa1ce0aa 100644 --- a/deps/ox/src/ox/model/def.hpp +++ b/deps/ox/src/ox/model/def.hpp @@ -8,8 +8,8 @@ #pragma once -#define oxModelBegin(modelName) template constexpr ox::Error model(T *io, modelName *o) noexcept { io->template setTypeInfo(); +#define oxModelBegin(modelName) constexpr ox::Error model(auto *io, modelName *o) noexcept { io->template setTypeInfo(); #define oxModelEnd() return OxError(0); } #define oxModelField(fieldName) oxReturnError(io->field(#fieldName, &o->fieldName)); #define oxModelFieldRename(serFieldName, objFieldName) oxReturnError(io->field(#serFieldName, &o->objFieldName)); -#define oxModelFriend(modelName) template friend constexpr ox::Error model(T*, modelName*) noexcept +#define oxModelFriend(modelName) friend constexpr ox::Error model(auto*, modelName*) noexcept diff --git a/deps/ox/src/ox/model/desctypes.hpp b/deps/ox/src/ox/model/desctypes.hpp index 9783cfa8..092576f2 100644 --- a/deps/ox/src/ox/model/desctypes.hpp +++ b/deps/ox/src/ox/model/desctypes.hpp @@ -50,7 +50,7 @@ struct DescriptorField { /** * Allow for explicit copying. */ - constexpr explicit DescriptorField(const DescriptorField &other) noexcept { + constexpr DescriptorField(const DescriptorField &other) noexcept { type = other.type; fieldName = other.fieldName; subscriptLevels = other.subscriptLevels; diff --git a/deps/ox/src/ox/model/descwrite.hpp b/deps/ox/src/ox/model/descwrite.hpp index 4c8ea69e..6dd7193d 100644 --- a/deps/ox/src/ox/model/descwrite.hpp +++ b/deps/ox/src/ox/model/descwrite.hpp @@ -206,14 +206,12 @@ Result> buildTypeDef(T *val) noexcept { return UniquePtr{writer.definition()}; } -template -Error writeTypeDef(uint8_t *buff, std::size_t buffLen, T *val, std::size_t *sizeOut = nullptr) noexcept { +Error writeTypeDef(uint8_t *buff, std::size_t buffLen, auto *val, std::size_t *sizeOut = nullptr) noexcept { oxRequire(def, buildTypeDef(val)); return writeType(buff, buffLen, def.get(), sizeOut); } -template -Result writeTypeDef(T *val) noexcept { +Result writeTypeDef(auto *val) noexcept { Buffer buff(units::MB); oxReturnError(writeTypeDef(buff.data(), buff.size(), val)); return std::move(buff);