diff options
Diffstat (limited to 'src/util/StringView.hxx')
-rw-r--r-- | src/util/StringView.hxx | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/util/StringView.hxx b/src/util/StringView.hxx index dd6c4dc77..b2456a945 100644 --- a/src/util/StringView.hxx +++ b/src/util/StringView.hxx @@ -54,6 +54,16 @@ struct StringView : ConstBuffer<char> { return StringView("", size_t(0)); } + template<size_t n> + static constexpr StringView Literal(const char (&_data)[n]) { + static_assert(n > 0, ""); + return {_data, n - 1}; + } + + static constexpr StringView Literal() { + return StringView("", size_t(0)); + } + void SetEmpty() { data = ""; size = 0; @@ -90,7 +100,7 @@ struct StringView : ConstBuffer<char> { template<size_t n> bool EqualsLiteral(const char (&other)[n]) const { - return Equals({other, n - 1}); + return Equals(Literal(other)); } gcc_pure @@ -101,7 +111,7 @@ struct StringView : ConstBuffer<char> { template<size_t n> bool EqualsLiteralIgnoreCase(const char (&other)[n]) const { - return EqualsIgnoreCase({other, n - 1}); + return EqualsIgnoreCase(Literal(other)); } /** |