From b754c66cf55b9321b7f7a21450a155748e87fb35 Mon Sep 17 00:00:00 2001 From: Gary Talent Date: Fri, 23 Jan 2026 01:38:53 -0600 Subject: [PATCH] [ox] Remove enable_if --- deps/ox/src/ox/model/descwrite.hpp | 2 +- deps/ox/src/ox/model/modelvalue.cpp | 3 +++ deps/ox/src/ox/model/modelvalue.hpp | 2 +- deps/ox/src/ox/model/types.hpp | 6 +++--- deps/ox/src/ox/std/test/tests.cpp | 26 ++++++++++++++------------ deps/ox/src/ox/std/typetraits.hpp | 14 -------------- 6 files changed, 22 insertions(+), 31 deletions(-) diff --git a/deps/ox/src/ox/model/descwrite.hpp b/deps/ox/src/ox/model/descwrite.hpp index c07d494a..256c96f8 100644 --- a/deps/ox/src/ox/model/descwrite.hpp +++ b/deps/ox/src/ox/model/descwrite.hpp @@ -357,7 +357,7 @@ constexpr const DescriptorType *TypeDescWriter::type(const char*) const noexcept template constexpr const DescriptorType *TypeDescWriter::type(const IString*) const noexcept { constexpr auto PT = PrimitiveType::String; - return getType(types::BString, 0, PT, 0); + return getType(types::IString, 0, PT, 0); } constexpr const DescriptorType *TypeDescWriter::getType(StringViewCR tn, int typeVersion, PrimitiveType pt, int b, diff --git a/deps/ox/src/ox/model/modelvalue.cpp b/deps/ox/src/ox/model/modelvalue.cpp index f735717e..97829e5c 100644 --- a/deps/ox/src/ox/model/modelvalue.cpp +++ b/deps/ox/src/ox/model/modelvalue.cpp @@ -20,4 +20,7 @@ static_assert([]() -> ox::Error { return {}; }() == ox::Error{}); +// a dummy function to prevent linker errors in a library that has no other symbols +void modelDummyFunc() noexcept {} + } diff --git a/deps/ox/src/ox/model/modelvalue.hpp b/deps/ox/src/ox/model/modelvalue.hpp index 28585c9e..95890df5 100644 --- a/deps/ox/src/ox/model/modelvalue.hpp +++ b/deps/ox/src/ox/model/modelvalue.hpp @@ -1098,7 +1098,7 @@ constexpr Error ModelValue::setType( } else if (type->typeName == types::Bool) { m_type = Type::Bool; } else if (type->typeName == types::BasicString || - type->typeName == types::BString || + type->typeName == types::IString || type->typeName == types::String) { m_type = Type::String; m_data.str = new String; diff --git a/deps/ox/src/ox/model/types.hpp b/deps/ox/src/ox/model/types.hpp index fd8927c6..fe530831 100644 --- a/deps/ox/src/ox/model/types.hpp +++ b/deps/ox/src/ox/model/types.hpp @@ -32,7 +32,7 @@ namespace ox { namespace types { constexpr StringView BasicString = "net.drinkingtea.ox.BasicString"; -constexpr StringView BString = "net.drinkingtea.ox.BString"; +constexpr StringView IString = "net.drinkingtea.ox.IString"; constexpr StringView String = "B.string"; constexpr StringView Bool = "B.bool"; constexpr StringView Uint8 = "B.uint8"; @@ -169,12 +169,12 @@ constexpr bool isSmartPtr_v<::std::unique_ptr> = true; #endif -template +template requires(force || is_union_v) class UnionView { protected: int m_idx = -1; - typename enable_if || force, Union>::type *m_union = nullptr; + Union *m_union = nullptr; public: constexpr UnionView(Union *u, int idx) noexcept: m_idx(idx), m_union(u) { diff --git a/deps/ox/src/ox/std/test/tests.cpp b/deps/ox/src/ox/std/test/tests.cpp index 7a3e33df..dfef322d 100644 --- a/deps/ox/src/ox/std/test/tests.cpp +++ b/deps/ox/src/ox/std/test/tests.cpp @@ -539,18 +539,20 @@ OX_CLANG_NOWARN_END { "intToStr", [] { - oxExpect(ox::intToStr(static_cast(127)), "127"); - oxExpect(ox::intToStr(static_cast(-128)), "-128"); - oxExpect(ox::intToStr(static_cast(255)), "255"); - oxExpect(ox::intToStr(static_cast(65535)), "65535"); - oxExpect(ox::intToStr(static_cast(32767)), "32767"); - oxExpect(ox::intToStr(static_cast(-32768)), "-32768"); - oxExpect(ox::intToStr(static_cast(4294967295)), "4294967295"); - oxExpect(ox::intToStr(static_cast(2147483647)), "2147483647"); - oxExpect(ox::intToStr(static_cast(-2147483648)), "-2147483648"); - oxExpect(ox::intToStr(static_cast(18446744073709551615u)), "18446744073709551615"); - oxExpect(ox::intToStr(static_cast(9223372036854775807)), "9223372036854775807"); - oxExpect(ox::intToStr(static_cast(-9223372036854775807)), "-9223372036854775807"); + oxExpect(ox::intToStr(255u), "255"); + oxExpect(ox::intToStr(127), "127"); + oxExpect(ox::intToStr(-128), "-128"); + oxExpect(ox::intToStr(65535u), "65535"); + oxExpect(ox::intToStr(32767), "32767"); + oxExpect(ox::intToStr(-32768), "-32768"); + oxExpect(ox::intToStr(4294967295u), "4294967295"); + oxExpect(ox::intToStr(2147483647), "2147483647"); + oxExpect(ox::intToStr(-2147483648), "-2147483648"); + oxExpect(ox::intToStr(18446744073709551615u), "18446744073709551615"); + oxExpect(ox::intToStr(9223372036854775807), "9223372036854775807"); + oxExpect(ox::intToStr(-9223372036854775807), "-9223372036854775807"); + oxExpect(ox::intToStr(0), "0"); + oxExpect(ox::intToStr(5), "5"); oxExpect(ox::intToStr(0), "0"); oxExpect(ox::intToStr(5), "5"); oxExpect(ox::intToStr(5000), "5000"); diff --git a/deps/ox/src/ox/std/typetraits.hpp b/deps/ox/src/ox/std/typetraits.hpp index f123ed0d..c4368e8d 100644 --- a/deps/ox/src/ox/std/typetraits.hpp +++ b/deps/ox/src/ox/std/typetraits.hpp @@ -180,20 +180,6 @@ struct is_same: true_type {}; template constexpr auto is_same_v = is_same::value; -// enable_if /////////////////////////////////////////////////////////////////// - -template -struct enable_if { -}; - -template -struct enable_if { - using type = T; -}; - -template -using enable_if_t = typename enable_if::type; - template struct is_pointer { static constexpr bool value = false;