From c002f18535880a18cdaa7304af02cdfd5990279e Mon Sep 17 00:00:00 2001 From: Zhe Feng Date: Mon, 27 Jul 2026 20:05:53 +0800 Subject: [PATCH] Fix MSVC deprecation warning for user-defined literals Remove the space between "" and the suffix in user-defined literal operators (e.g. operator ""_a instead of operator "" _a) to avoid MSVC deprecation warning C5311. --- include/internal/catch_approx.cpp | 4 ++-- include/internal/catch_approx.h | 4 ++-- include/internal/catch_stringref.h | 4 ++-- .../SelfTest/IntrospectiveTests/String.tests.cpp | 2 +- single_include/catch2/catch.hpp | 12 ++++++------ 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/include/internal/catch_approx.cpp b/include/internal/catch_approx.cpp index 32b5e043..7de3427c 100644 --- a/include/internal/catch_approx.cpp +++ b/include/internal/catch_approx.cpp @@ -73,10 +73,10 @@ namespace Detail { } // end namespace Detail namespace literals { - Detail::Approx operator "" _a(long double val) { + Detail::Approx operator ""_a(long double val) { return Detail::Approx(val); } - Detail::Approx operator "" _a(unsigned long long val) { + Detail::Approx operator ""_a(unsigned long long val) { return Detail::Approx(val); } } // end namespace literals diff --git a/include/internal/catch_approx.h b/include/internal/catch_approx.h index 2d12efe4..bb99ef12 100644 --- a/include/internal/catch_approx.h +++ b/include/internal/catch_approx.h @@ -118,8 +118,8 @@ namespace Detail { } // end namespace Detail namespace literals { - Detail::Approx operator "" _a(long double val); - Detail::Approx operator "" _a(unsigned long long val); + Detail::Approx operator ""_a(long double val); + Detail::Approx operator ""_a(unsigned long long val); } // end namespace literals template<> diff --git a/include/internal/catch_stringref.h b/include/internal/catch_stringref.h index dc2e748c..15c39813 100644 --- a/include/internal/catch_stringref.h +++ b/include/internal/catch_stringref.h @@ -92,12 +92,12 @@ namespace Catch { auto operator << ( std::ostream& os, StringRef const& sr ) -> std::ostream&; - 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 ); } diff --git a/projects/SelfTest/IntrospectiveTests/String.tests.cpp b/projects/SelfTest/IntrospectiveTests/String.tests.cpp index 3a308657..4c1e1e93 100644 --- a/projects/SelfTest/IntrospectiveTests/String.tests.cpp +++ b/projects/SelfTest/IntrospectiveTests/String.tests.cpp @@ -141,7 +141,7 @@ TEST_CASE("StringRef at compilation time", "[Strings][StringRef][constexpr]") { STATIC_REQUIRE(sr1.size() == 3); STATIC_REQUIRE(sr1.isNullTerminated()); - using Catch::operator"" _sr; + using Catch::operator""_sr; constexpr auto sr2 = ""_sr; STATIC_REQUIRE(sr2.empty()); STATIC_REQUIRE(sr2.size() == 0); diff --git a/single_include/catch2/catch.hpp b/single_include/catch2/catch.hpp index 9b309bdd..3d7121cd 100644 --- a/single_include/catch2/catch.hpp +++ b/single_include/catch2/catch.hpp @@ -677,12 +677,12 @@ namespace Catch { auto operator += ( std::string& lhs, StringRef const& sr ) -> std::string&; auto operator << ( std::ostream& os, StringRef const& sr ) -> std::ostream&; - 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 ); } @@ -3177,8 +3177,8 @@ namespace Detail { } // end namespace Detail namespace literals { - Detail::Approx operator "" _a(long double val); - Detail::Approx operator "" _a(unsigned long long val); + Detail::Approx operator ""_a(long double val); + Detail::Approx operator ""_a(unsigned long long val); } // end namespace literals template<> @@ -7920,10 +7920,10 @@ namespace Detail { } // end namespace Detail namespace literals { - Detail::Approx operator "" _a(long double val) { + Detail::Approx operator ""_a(long double val) { return Detail::Approx(val); } - Detail::Approx operator "" _a(unsigned long long val) { + Detail::Approx operator ""_a(unsigned long long val) { return Detail::Approx(val); } } // end namespace literals