16#ifndef AEONGUI_STRINGLITERAL_H
17#define AEONGUI_STRINGLITERAL_H
38 template<
size_t aStringSize>
40 mString{aString}, mStringSize{aStringSize} {}
79 return ( mString == b.mString || std::char_traits<char>::compare ( mString, b.mString, mStringSize ) == 0 );
90 return ( mString == b ) || std::char_traits<char>::compare ( mString, b, mStringSize ) == 0;
101 operator std::string()
const
103 return std::string{mString};
106 const char* mString{};
107 size_t mStringSize{};
123 return std::hash<std::string> {} ( Key );
Compile-time string literal wrapper.
Definition StringLiteral.hpp:32
constexpr size_t GetStringSize() const
Get the string size including the null terminator.
Definition StringLiteral.hpp:69
constexpr StringLiteral(const char(&aString)[aStringSize])
Construct from a string literal.
Definition StringLiteral.hpp:39
constexpr bool operator==(const StringLiteral &b) const
Compare with another StringLiteral for equality.
Definition StringLiteral.hpp:77
constexpr const char * GetString() const
Get the underlying C string.
Definition StringLiteral.hpp:62
constexpr StringLiteral() noexcept=default
Default constructor.
Hash functor for StringLiteral.
Definition StringLiteral.hpp:116
size_t operator()(const StringLiteral &Key) const noexcept
Compute hash for a StringLiteral.
Definition StringLiteral.hpp:121