[ox/std] Add String constructor that takes a StringLiteral
This commit is contained in:
parent
dfd27afd67
commit
ebf3a6961e
16
deps/ox/src/ox/std/string.hpp
vendored
16
deps/ox/src/ox/std/string.hpp
vendored
@ -15,6 +15,7 @@
|
|||||||
#include "algorithm.hpp"
|
#include "algorithm.hpp"
|
||||||
#include "memops.hpp"
|
#include "memops.hpp"
|
||||||
#include "serialize.hpp"
|
#include "serialize.hpp"
|
||||||
|
#include "stringliteral.hpp"
|
||||||
#include "stringview.hpp"
|
#include "stringview.hpp"
|
||||||
#include "strops.hpp"
|
#include "strops.hpp"
|
||||||
#include "vector.hpp"
|
#include "vector.hpp"
|
||||||
@ -41,6 +42,8 @@ class BasicString {
|
|||||||
|
|
||||||
constexpr BasicString(const char *str, std::size_t size) noexcept;
|
constexpr BasicString(const char *str, std::size_t size) noexcept;
|
||||||
|
|
||||||
|
constexpr explicit BasicString(StringLiteral const&str) noexcept;
|
||||||
|
|
||||||
constexpr explicit BasicString(CRStringView str) noexcept;
|
constexpr explicit BasicString(CRStringView str) noexcept;
|
||||||
|
|
||||||
constexpr explicit BasicString(BasicString const&) noexcept;
|
constexpr explicit BasicString(BasicString const&) noexcept;
|
||||||
@ -250,14 +253,6 @@ constexpr BasicString<SmallStringSize_v>::BasicString(std::size_t cap) noexcept:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template<std::size_t SmallStringSize_v>
|
|
||||||
template<size_t Sz>
|
|
||||||
constexpr BasicString<SmallStringSize_v>::BasicString(char const (&str)[Sz]) noexcept {
|
|
||||||
m_buff.resize(Sz + 1);
|
|
||||||
ox::listcpy(m_buff.data(), str, Sz);
|
|
||||||
m_buff[Sz] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
template<std::size_t SmallStringSize_v>
|
template<std::size_t SmallStringSize_v>
|
||||||
constexpr BasicString<SmallStringSize_v>::BasicString(const char *str) noexcept {
|
constexpr BasicString<SmallStringSize_v>::BasicString(const char *str) noexcept {
|
||||||
if (!m_buff.empty()) {
|
if (!m_buff.empty()) {
|
||||||
@ -285,6 +280,11 @@ constexpr BasicString<SmallStringSize_v>::BasicString(const char *str, std::size
|
|||||||
m_buff[size] = 0;
|
m_buff[size] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<std::size_t SmallStringSize_v>
|
||||||
|
constexpr BasicString<SmallStringSize_v>::BasicString(StringLiteral const&str) noexcept:
|
||||||
|
BasicString(StringView{str.data(), str.bytes()}) {
|
||||||
|
}
|
||||||
|
|
||||||
template<std::size_t SmallStringSize_v>
|
template<std::size_t SmallStringSize_v>
|
||||||
constexpr BasicString<SmallStringSize_v>::BasicString(CRStringView str) noexcept {
|
constexpr BasicString<SmallStringSize_v>::BasicString(CRStringView str) noexcept {
|
||||||
if (m_buff.empty()) {
|
if (m_buff.empty()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user