From 4fc9270231971caff73022912c8396d9ed2bd6ed Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Sun, 12 Feb 2023 22:45:09 +0800 Subject: [PATCH 1/2] Avoid the form of UDL deprecated by CWG-2521 --- stl/inc/__msvc_chrono.hpp | 24 +++++++++---------- stl/inc/chrono | 4 ++-- stl/inc/xstring | 20 ++++++++-------- .../tests/P0092R1_polishing_chrono/test.cpp | 2 +- .../tests/P1522R1_difference_type/test.cpp | 4 ++-- 5 files changed, 27 insertions(+), 27 deletions(-) diff --git a/stl/inc/__msvc_chrono.hpp b/stl/inc/__msvc_chrono.hpp index 4930179b62c..edd325a4ae8 100644 --- a/stl/inc/__msvc_chrono.hpp +++ b/stl/inc/__msvc_chrono.hpp @@ -720,62 +720,62 @@ _NODISCARD bool _To_xtime_10_day_clamped(_CSTD xtime& _Xt, const _CHRONO duratio inline namespace literals { inline namespace chrono_literals { - _EXPORT_STD _NODISCARD constexpr _CHRONO hours operator"" h(unsigned long long _Val) noexcept + _EXPORT_STD _NODISCARD constexpr _CHRONO hours operator""h(unsigned long long _Val) noexcept /* strengthened */ { return _CHRONO hours(_Val); } - _EXPORT_STD _NODISCARD constexpr _CHRONO duration> operator"" h(long double _Val) noexcept + _EXPORT_STD _NODISCARD constexpr _CHRONO duration> operator""h(long double _Val) noexcept /* strengthened */ { return _CHRONO duration>(_Val); } - _EXPORT_STD _NODISCARD constexpr _CHRONO minutes(operator"" min)(unsigned long long _Val) noexcept + _EXPORT_STD _NODISCARD constexpr _CHRONO minutes(operator""min)(unsigned long long _Val) noexcept /* strengthened */ { return _CHRONO minutes(_Val); } - _EXPORT_STD _NODISCARD constexpr _CHRONO duration>(operator"" min)(long double _Val) noexcept + _EXPORT_STD _NODISCARD constexpr _CHRONO duration>(operator""min)(long double _Val) noexcept /* strengthened */ { return _CHRONO duration>(_Val); } - _EXPORT_STD _NODISCARD constexpr _CHRONO seconds operator"" s(unsigned long long _Val) noexcept + _EXPORT_STD _NODISCARD constexpr _CHRONO seconds operator""s(unsigned long long _Val) noexcept /* strengthened */ { return _CHRONO seconds(_Val); } - _EXPORT_STD _NODISCARD constexpr _CHRONO duration operator"" s(long double _Val) noexcept + _EXPORT_STD _NODISCARD constexpr _CHRONO duration operator""s(long double _Val) noexcept /* strengthened */ { return _CHRONO duration(_Val); } - _EXPORT_STD _NODISCARD constexpr _CHRONO milliseconds operator"" ms(unsigned long long _Val) noexcept + _EXPORT_STD _NODISCARD constexpr _CHRONO milliseconds operator""ms(unsigned long long _Val) noexcept /* strengthened */ { return _CHRONO milliseconds(_Val); } - _EXPORT_STD _NODISCARD constexpr _CHRONO duration operator"" ms(long double _Val) noexcept + _EXPORT_STD _NODISCARD constexpr _CHRONO duration operator""ms(long double _Val) noexcept /* strengthened */ { return _CHRONO duration(_Val); } - _EXPORT_STD _NODISCARD constexpr _CHRONO microseconds operator"" us(unsigned long long _Val) noexcept + _EXPORT_STD _NODISCARD constexpr _CHRONO microseconds operator""us(unsigned long long _Val) noexcept /* strengthened */ { return _CHRONO microseconds(_Val); } - _EXPORT_STD _NODISCARD constexpr _CHRONO duration operator"" us(long double _Val) noexcept + _EXPORT_STD _NODISCARD constexpr _CHRONO duration operator""us(long double _Val) noexcept /* strengthened */ { return _CHRONO duration(_Val); } - _EXPORT_STD _NODISCARD constexpr _CHRONO nanoseconds operator"" ns(unsigned long long _Val) noexcept + _EXPORT_STD _NODISCARD constexpr _CHRONO nanoseconds operator""ns(unsigned long long _Val) noexcept /* strengthened */ { return _CHRONO nanoseconds(_Val); } - _EXPORT_STD _NODISCARD constexpr _CHRONO duration operator"" ns(long double _Val) noexcept + _EXPORT_STD _NODISCARD constexpr _CHRONO duration operator""ns(long double _Val) noexcept /* strengthened */ { return _CHRONO duration(_Val); } diff --git a/stl/inc/chrono b/stl/inc/chrono index de9132c9276..6d967cf5d02 100644 --- a/stl/inc/chrono +++ b/stl/inc/chrono @@ -6019,10 +6019,10 @@ namespace chrono { inline namespace literals { inline namespace chrono_literals { - _EXPORT_STD _NODISCARD constexpr _CHRONO day operator"" d(unsigned long long _Day) noexcept { + _EXPORT_STD _NODISCARD constexpr _CHRONO day operator""d(unsigned long long _Day) noexcept { return _CHRONO day{static_cast(_Day)}; } - _EXPORT_STD _NODISCARD constexpr _CHRONO year operator"" y(unsigned long long _Year) noexcept { + _EXPORT_STD _NODISCARD constexpr _CHRONO year operator""y(unsigned long long _Year) noexcept { return _CHRONO year{static_cast(_Year)}; } } // namespace chrono_literals diff --git a/stl/inc/xstring b/stl/inc/xstring index a51a3df7de4..40bd03fd91e 100644 --- a/stl/inc/xstring +++ b/stl/inc/xstring @@ -1847,26 +1847,26 @@ basic_ostream<_Elem, _Traits>& operator<<( inline namespace literals { inline namespace string_view_literals { - _EXPORT_STD _NODISCARD constexpr string_view operator"" sv(const char* _Str, size_t _Len) noexcept { + _EXPORT_STD _NODISCARD constexpr string_view operator""sv(const char* _Str, size_t _Len) noexcept { return string_view(_Str, _Len); } - _EXPORT_STD _NODISCARD constexpr wstring_view operator"" sv(const wchar_t* _Str, size_t _Len) noexcept { + _EXPORT_STD _NODISCARD constexpr wstring_view operator""sv(const wchar_t* _Str, size_t _Len) noexcept { return wstring_view(_Str, _Len); } #ifdef __cpp_char8_t - _EXPORT_STD _NODISCARD constexpr basic_string_view operator"" sv( + _EXPORT_STD _NODISCARD constexpr basic_string_view operator""sv( const char8_t* _Str, size_t _Len) noexcept { return basic_string_view(_Str, _Len); } #endif // __cpp_char8_t - _EXPORT_STD _NODISCARD constexpr u16string_view operator"" sv(const char16_t* _Str, size_t _Len) noexcept { + _EXPORT_STD _NODISCARD constexpr u16string_view operator""sv(const char16_t* _Str, size_t _Len) noexcept { return u16string_view(_Str, _Len); } - _EXPORT_STD _NODISCARD constexpr u32string_view operator"" sv(const char32_t* _Str, size_t _Len) noexcept { + _EXPORT_STD _NODISCARD constexpr u32string_view operator""sv(const char32_t* _Str, size_t _Len) noexcept { return u32string_view(_Str, _Len); } } // namespace string_view_literals @@ -5225,25 +5225,25 @@ basic_ostream<_Elem, _Traits>& operator<<( inline namespace literals { inline namespace string_literals { - _EXPORT_STD _NODISCARD _CONSTEXPR20 string operator"" s(const char* _Str, size_t _Len) { + _EXPORT_STD _NODISCARD _CONSTEXPR20 string operator""s(const char* _Str, size_t _Len) { return string{_Str, _Len}; } - _EXPORT_STD _NODISCARD _CONSTEXPR20 wstring operator"" s(const wchar_t* _Str, size_t _Len) { + _EXPORT_STD _NODISCARD _CONSTEXPR20 wstring operator""s(const wchar_t* _Str, size_t _Len) { return wstring{_Str, _Len}; } #ifdef __cpp_char8_t - _EXPORT_STD _NODISCARD _CONSTEXPR20 basic_string operator"" s(const char8_t* _Str, size_t _Len) { + _EXPORT_STD _NODISCARD _CONSTEXPR20 basic_string operator""s(const char8_t* _Str, size_t _Len) { return basic_string{_Str, _Len}; } #endif // __cpp_char8_t - _EXPORT_STD _NODISCARD _CONSTEXPR20 u16string operator"" s(const char16_t* _Str, size_t _Len) { + _EXPORT_STD _NODISCARD _CONSTEXPR20 u16string operator""s(const char16_t* _Str, size_t _Len) { return u16string{_Str, _Len}; } - _EXPORT_STD _NODISCARD _CONSTEXPR20 u32string operator"" s(const char32_t* _Str, size_t _Len) { + _EXPORT_STD _NODISCARD _CONSTEXPR20 u32string operator""s(const char32_t* _Str, size_t _Len) { return u32string{_Str, _Len}; } } // namespace string_literals diff --git a/tests/std/tests/P0092R1_polishing_chrono/test.cpp b/tests/std/tests/P0092R1_polishing_chrono/test.cpp index f43668efa89..19b3b9abad0 100644 --- a/tests/std/tests/P0092R1_polishing_chrono/test.cpp +++ b/tests/std/tests/P0092R1_polishing_chrono/test.cpp @@ -166,7 +166,7 @@ namespace floating_point_conversions { // Make sure round() handles cases where taking half the divisor itself // truncates. using odd_divisor = duration>; -inline constexpr odd_divisor operator"" _odd(unsigned long long val) { +inline constexpr odd_divisor operator""_odd(unsigned long long val) { return odd_divisor(val); } diff --git a/tests/std/tests/P1522R1_difference_type/test.cpp b/tests/std/tests/P1522R1_difference_type/test.cpp index a243e2aa7b1..f727e51165f 100644 --- a/tests/std/tests/P1522R1_difference_type/test.cpp +++ b/tests/std/tests/P1522R1_difference_type/test.cpp @@ -132,7 +132,7 @@ namespace i128_udl_detail { } // namespace i128_udl_detail template -[[nodiscard]] CONSTEVAL _Unsigned128 operator"" _u128() noexcept { +[[nodiscard]] CONSTEVAL _Unsigned128 operator""_u128() noexcept { constexpr auto parsed_result = i128_udl_detail::parse_u128::parse(); static_assert(parsed_result.status_code != i128_udl_detail::u128_parse_status::invalid, "Invalid characters in the integer literal"); @@ -142,7 +142,7 @@ template } template -[[nodiscard]] CONSTEVAL _Signed128 operator"" _i128() noexcept { +[[nodiscard]] CONSTEVAL _Signed128 operator""_i128() noexcept { constexpr auto parsed_result = i128_udl_detail::parse_u128::parse(); static_assert(parsed_result.status_code != i128_udl_detail::u128_parse_status::invalid, "Invalid characters in the integer literal"); From 7aefc0e5b27fd6d35fb56258e1c2ccfc936c9764 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Mon, 13 Feb 2023 00:14:11 +0800 Subject: [PATCH 2/2] Address @cppleaner's review comments Co-authored-by: S. B. Tam --- stl/inc/__msvc_chrono.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stl/inc/__msvc_chrono.hpp b/stl/inc/__msvc_chrono.hpp index edd325a4ae8..a68c871c7c0 100644 --- a/stl/inc/__msvc_chrono.hpp +++ b/stl/inc/__msvc_chrono.hpp @@ -730,12 +730,12 @@ inline namespace literals { return _CHRONO duration>(_Val); } - _EXPORT_STD _NODISCARD constexpr _CHRONO minutes(operator""min)(unsigned long long _Val) noexcept + _EXPORT_STD _NODISCARD constexpr _CHRONO minutes operator""min(unsigned long long _Val) noexcept /* strengthened */ { return _CHRONO minutes(_Val); } - _EXPORT_STD _NODISCARD constexpr _CHRONO duration>(operator""min)(long double _Val) noexcept + _EXPORT_STD _NODISCARD constexpr _CHRONO duration> operator""min(long double _Val) noexcept /* strengthened */ { return _CHRONO duration>(_Val); }