Browse Source

Use generic append

Kajetan Johannes Hammerle 2 weeks ago
parent
commit
a8f560e645
2 changed files with 7 additions and 63 deletions
  1. 7 19
      include/core/utils/ArrayString.hpp
  2. 0 44
      src/ArrayString.cpp

+ 7 - 19
include/core/utils/ArrayString.hpp

@@ -144,23 +144,18 @@ namespace Core {
         check_return Error append(const c32* s);
         check_return Error append(const signed char* s);
         check_return Error append(const unsigned char* s);
-        check_return Error append(signed short s);
-        check_return Error append(unsigned short s);
-        check_return Error append(signed int i);
-        check_return Error append(unsigned int i);
-        check_return Error append(signed long l);
-        check_return Error append(unsigned long l);
-        check_return Error append(signed long long ll);
-        check_return Error append(unsigned long long ll);
-        check_return Error append(float f);
-        check_return Error append(double d);
-        check_return Error append(long double ld);
         check_return Error append(bool b);
         check_return Error append(Error e);
 
         template<typename T>
         check_return Error append(const T& t) {
-            return t.toString(*this);
+            if constexpr(requires { t.toString(*this); }) {
+                return t.toString(*this);
+            } else {
+                char buffer[64];
+                CORE_RETURN_ERROR(Core::toString(t, buffer, CORE_SIZE(buffer)));
+                return append(static_cast<const char*>(buffer));
+            }
         }
 
         check_return Error toString(CharString& s) const;
@@ -216,13 +211,6 @@ namespace Core {
         }
 
         check_return Error formatBuffer(Char32String& s, int index);
-
-        template<typename T>
-        check_return Error convertAppend(T t) {
-            char buffer[64];
-            CORE_RETURN_ERROR(Core::toString(t, buffer, CORE_SIZE(buffer)));
-            return append(static_cast<const char*>(buffer));
-        }
     };
 
     template<int N, typename C, typename B>

+ 0 - 44
src/ArrayString.cpp

@@ -418,50 +418,6 @@ Error Char32String::append(const unsigned char* s) {
     return append(reinterpret_cast<const char*>(s));
 }
 
-Error Char32String::append(signed short s) {
-    return convertAppend(s);
-}
-
-Error Char32String::append(unsigned short s) {
-    return convertAppend(s);
-}
-
-Error Char32String::append(signed int i) {
-    return convertAppend(i);
-}
-
-Error Char32String::append(unsigned int i) {
-    return convertAppend(i);
-}
-
-Error Char32String::append(signed long l) {
-    return convertAppend(l);
-}
-
-Error Char32String::append(unsigned long l) {
-    return convertAppend(l);
-}
-
-Error Char32String::append(signed long long ll) {
-    return convertAppend(ll);
-}
-
-Error Char32String::append(unsigned long long ll) {
-    return convertAppend(ll);
-}
-
-Error Char32String::append(float f) {
-    return convertAppend(f);
-}
-
-Error Char32String::append(double d) {
-    return convertAppend(d);
-}
-
-Error Char32String::append(long double ld) {
-    return convertAppend(ld);
-}
-
 Error Char32String::append(bool b) {
     return b ? append("true") : append("false");
 }