Changes for how Literal changes to normal StringView.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2020-06-27 14:16:15 +02:00
parent 773e765c83
commit 083c00f85e
3 changed files with 25 additions and 1 deletions

View File

@@ -72,6 +72,8 @@ namespace ArbUt {
: BasicStringView(str.length(), Hash(str.data())), _str(new __ConstStringCharHolder(str)) {}
StringView(const char* str) noexcept
: BasicStringView(CalcLength(str), Hash(str)), _str(new __ConstStringCharHolder(str, CalcLength(str))) {}
StringView(const char* str, size_t length) noexcept
: BasicStringView(length, Hash(str)), _str(new __ConstStringCharHolder(str, length)) {}
StringView() noexcept : BasicStringView(0, Hash("")), _str(GetEmptyString()) {
GetEmptyString()->AddReference();

View File

@@ -17,7 +17,7 @@ namespace ArbUt {
[[nodiscard]] inline constexpr const char* c_str() const noexcept { return _str; }
constexpr std::string_view std_str() const noexcept { return std::string_view(_str, _length); }
constexpr std::size_t operator()(StringViewLiteral const& s) const noexcept { return s.GetHash(); }
inline operator StringView() const noexcept { return StringView(std::string_view(_str, _length)); }
inline operator StringView() const noexcept { return StringView(_str, _length); }
inline constexpr bool operator==(const std::string_view& rhs) const noexcept {
return _hash == Hash(rhs.data());