diff --git a/docs/contributing.md b/docs/contributing.md index dc6bb53715..f70b1e4577 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -239,6 +239,23 @@ there is no difference is wrong, QNX and VxWorks won't compile if you include the header as `` and call the function unqualified. +#### User-Defined Literals (UDL) for Catch2' types + +Due to messy standardese and ... not great ... implementation of +`-Wreserved-identifier` in Clang, avoid declaring UDLs as +```cpp +Approx operator "" _a(long double); +``` +and instead declare them as +```cpp +Approx operator ""_a(long double); +``` + +Notice that the second version does not have a space between the `""` and +the literal suffix. + + + ### New source file template If you are adding new source file, there is a template you should use. diff --git a/src/catch2/catch_approx.hpp b/src/catch2/catch_approx.hpp index 7483349477..8f0e63270e 100644 --- a/src/catch2/catch_approx.hpp +++ b/src/catch2/catch_approx.hpp @@ -114,8 +114,8 @@ namespace Catch { }; namespace literals { - Approx operator "" _a(long double val); - Approx operator "" _a(unsigned long long val); + Approx operator ""_a(long double val); + Approx operator ""_a(unsigned long long val); } // end namespace literals template<> diff --git a/src/catch2/internal/catch_stringref.hpp b/src/catch2/internal/catch_stringref.hpp index fed35b16d1..17f5d07dab 100644 --- a/src/catch2/internal/catch_stringref.hpp +++ b/src/catch2/internal/catch_stringref.hpp @@ -98,12 +98,12 @@ namespace Catch { }; - constexpr auto operator "" _sr( char const* rawChars, std::size_t size ) noexcept -> StringRef { + constexpr auto operator ""_sr( char const* rawChars, std::size_t size ) noexcept -> StringRef { return StringRef( rawChars, size ); } } // namespace Catch -constexpr auto operator "" _catch_sr( char const* rawChars, std::size_t size ) noexcept -> Catch::StringRef { +constexpr auto operator ""_catch_sr( char const* rawChars, std::size_t size ) noexcept -> Catch::StringRef { return Catch::StringRef( rawChars, size ); }