diff --git a/src/ConstString.hpp b/src/ConstString.hpp index 4486a96..5b18269 100644 --- a/src/ConstString.hpp +++ b/src/ConstString.hpp @@ -19,7 +19,8 @@ namespace Arbutils { inline static constexpr char charToLower(const char c) { return (c >= 'A' && c <= 'Z') ? c + ('a' - 'A') : c; } inline static uint32_t constexpr LowercaseHash(char const* input) { - return charToLower(*input) ? static_cast(charToLower(*input)) + 33 * LowercaseHash(input + 1) : 5381; + return charToLower(*input) ? static_cast(charToLower(*input)) + 33 * LowercaseHash(input + 1) + : 5381; } inline static int constexpr Length(const char* str) { return *str ? 1 + Length(str + 1) : 0; } @@ -51,6 +52,10 @@ namespace Arbutils { inline constexpr bool operator==(const ConstString& rhs) const { return _hash == rhs._hash; } inline constexpr bool operator!=(const ConstString& rhs) const { return _hash != rhs._hash; } + inline constexpr bool operator==(const std::string& rhs) const { return _hash == Hash(rhs.c_str()); } + inline constexpr bool operator!=(const std::string& rhs) const { return _hash != Hash(rhs.c_str()); } + inline constexpr bool operator==(const char* rhs) const { return _hash == Hash(rhs); } + inline constexpr bool operator!=(const char* rhs) const { return _hash != Hash(rhs); } }; }