diff --git a/deps/ox/src/ox/std/string.hpp b/deps/ox/src/ox/std/string.hpp index 63b5d496..240bd91a 100644 --- a/deps/ox/src/ox/std/string.hpp +++ b/deps/ox/src/ox/std/string.hpp @@ -21,31 +21,31 @@ class BString { char m_buff[buffLen + 1]; public: - BString() noexcept; + constexpr BString() noexcept; - BString(const char *str) noexcept; + constexpr BString(const char *str) noexcept; - const BString &operator=(const char *str) noexcept; + constexpr const BString &operator=(const char *str) noexcept; - const BString &operator=(char *str) noexcept; + constexpr const BString &operator=(char *str) noexcept; - const BString &operator=(int64_t i) noexcept; + constexpr const BString &operator=(int64_t i) noexcept; - const BString &operator+=(const char *str) noexcept; + constexpr const BString &operator+=(const char *str) noexcept; - const BString &operator+=(char *str) noexcept; + constexpr const BString &operator+=(char *str) noexcept; - const BString &operator+=(int64_t i) noexcept; + constexpr const BString &operator+=(int64_t i) noexcept; - bool operator==(const BString &other) noexcept; + constexpr bool operator==(const BString &other) noexcept; - char operator[](std::size_t i) const noexcept; + constexpr char operator[](std::size_t i) const noexcept; - char &operator[](std::size_t i) noexcept; + constexpr char &operator[](std::size_t i) noexcept; - char *data() noexcept; + constexpr char *data() noexcept; - const char *c_str() const noexcept; + constexpr const char *c_str() const noexcept; /** * Returns the number of characters in this string. @@ -64,24 +64,24 @@ class BString { }; template -BString::BString() noexcept { +constexpr BString::BString() noexcept { m_buff[0] = 0; } template -BString::BString(const char *str) noexcept { +constexpr BString::BString(const char *str) noexcept { *this = str; } template -const BString &BString::operator=(int64_t i) noexcept { - char str[65]; +constexpr const BString &BString::operator=(int64_t i) noexcept { + char str[65] = {}; ox_itoa(i, str); return this->operator=(str); } template -const BString &BString::operator=(const char *str) noexcept { +constexpr const BString &BString::operator=(const char *str) noexcept { std::size_t strLen = ox_strlen(str) + 1; if (cap() < strLen) { strLen = cap(); @@ -93,12 +93,12 @@ const BString &BString::operator=(const char *str) noexcept { } template -const BString &BString::operator=(char *str) noexcept { +constexpr const BString &BString::operator=(char *str) noexcept { return *this = (const char*) str; } template -const BString &BString::operator+=(const char *str) noexcept { +constexpr const BString &BString::operator+=(const char *str) noexcept { std::size_t strLen = ox_strlen(str) + 1; auto currentLen = len(); if (cap() < currentLen + strLen) { @@ -111,19 +111,19 @@ const BString &BString::operator+=(const char *str) noexcept { } template -const BString &BString::operator+=(char *str) noexcept { +constexpr const BString &BString::operator+=(char *str) noexcept { return *this += (const char*) str; } template -const BString &BString::operator+=(int64_t i) noexcept { - char str[65]; +constexpr const BString &BString::operator+=(int64_t i) noexcept { + char str[65] = {}; ox_itoa(i, str); return this->operator+=(str); } template -bool BString::operator==(const BString &other) noexcept { +constexpr bool BString::operator==(const BString &other) noexcept { bool retval = true; std::size_t i = 0; while (i < buffLen && (m_buff[i] || other.m_buff[i])) { @@ -137,22 +137,22 @@ bool BString::operator==(const BString &other) noexcept { } template -char BString::operator[](std::size_t i) const noexcept { +constexpr char BString::operator[](std::size_t i) const noexcept { return m_buff[i]; } template -char &BString::operator[](std::size_t i) noexcept { +constexpr char &BString::operator[](std::size_t i) noexcept { return m_buff[i]; } template -char *BString::data() noexcept { +constexpr char *BString::data() noexcept { return (char*) m_buff; } template -const char *BString::c_str() const noexcept { +constexpr const char *BString::c_str() const noexcept { return (const char*) m_buff; }