[ox/std] Add operator+(...) to BString

This commit is contained in:
Gary Talent 2022-02-16 01:57:03 -06:00
parent 99cc853b94
commit 627fb387e6

View File

@ -37,6 +37,12 @@ class BString {
constexpr BString &operator+=(int64_t i) noexcept;
constexpr BString operator+(const char *str) const noexcept;
constexpr BString operator+(char *str) const noexcept;
constexpr BString operator+(int64_t i) const noexcept;
constexpr bool operator==(const BString &other) const noexcept;
constexpr bool operator!=(const BString &other) noexcept;
@ -123,6 +129,26 @@ constexpr BString<size> &BString<size>::operator+=(int64_t i) noexcept {
return this->operator+=(str);
}
template<std::size_t size>
constexpr BString<size> BString<size>::operator+(const char *str) const noexcept {
auto out = *this;
std::size_t strLen = ox_strlen(str) + 1;
oxIgnoreError(out.append(str, strLen));
return out;
}
template<std::size_t size>
constexpr BString<size> BString<size>::operator+(char *str) const noexcept {
return *this + static_cast<const char*>(str);
}
template<std::size_t size>
constexpr BString<size> BString<size>::operator+(int64_t i) const noexcept {
char str[65] = {};
ox_itoa(i, str);
return this->operator+(str);
}
template<std::size_t buffLen>
constexpr bool BString<buffLen>::operator==(const BString<buffLen> &other) const noexcept {
bool retval = true;