1
0
mirror of https://github.com/SerenityOS/serenity synced 2024-07-05 22:14:55 +00:00

AK: Fix Clang 18 -Wdeprecated-literal-operator warning

The proper syntax for defining user-defined literals does not require a
space between the `operator""` token and the operator name:

> error: identifier 'sv' preceded by whitespace in a literal operator
>        declaration is deprecated
This commit is contained in:
Daniel Bertalan 2023-08-17 18:27:39 +02:00
parent 6d331389ad
commit 075ce53d14
3 changed files with 4 additions and 4 deletions

View File

@ -388,7 +388,7 @@ struct CaseInsensitiveASCIIStringViewTraits : public Traits<StringView> {
# define AK_STRING_VIEW_LITERAL_CONSTEVAL consteval
#endif
[[nodiscard]] ALWAYS_INLINE AK_STRING_VIEW_LITERAL_CONSTEVAL AK::StringView operator"" sv(char const* cstring, size_t length)
[[nodiscard]] ALWAYS_INLINE AK_STRING_VIEW_LITERAL_CONSTEVAL AK::StringView operator""sv(char const* cstring, size_t length)
{
return AK::StringView(cstring, length);
}

View File

@ -242,11 +242,11 @@ static_assert(AssertSize<Empty, 1>());
## String View Literals
`AK::StringView` support for `operator"" sv` which is a special string literal operator that was added as of
`AK::StringView` support for `operator""sv` which is a special string literal operator that was added as of
[C++17 to enable `std::string_view` literals](https://en.cppreference.com/w/cpp/string/basic_string_view/operator%22%22sv).
```cpp
[[nodiscard]] ALWAYS_INLINE constexpr AK::StringView operator"" sv(const char* cstring, size_t length)
[[nodiscard]] ALWAYS_INLINE constexpr AK::StringView operator""sv(const char* cstring, size_t length)
{
return AK::StringView(cstring, length);
}

View File

@ -33,7 +33,7 @@ To implement this yourself:
```
- In addition, you will need to also add some compile options that Serenity uses to ensure no warnings or errors:
```cmake
add_compile_options(-Wno-literal-suffix) # AK::StringView defines operator"" sv, which GCC complains does not have an underscore.
add_compile_options(-Wno-literal-suffix) # AK::StringView defines operator""sv, which GCC complains does not have an underscore.
add_compile_options(-fno-gnu-keywords) # JS::Value has a method named typeof, which also happens to be a GNU keyword.
```