diff --git a/stl/inc/algorithm b/stl/inc/algorithm index 82af426230..44d4ad7f16 100644 --- a/stl/inc/algorithm +++ b/stl/inc/algorithm @@ -61,6 +61,7 @@ const void* __stdcall __std_find_last_trivial_4(const void* _First, const void* const void* __stdcall __std_find_last_trivial_8(const void* _First, const void* _Last, uint64_t _Val) noexcept; } // extern "C" +_STD_BEGIN template _STD pair<_Ty*, _Ty*> __std_minmax_element(_Ty* _First, _Ty* _Last) noexcept { constexpr bool _Signed = _STD is_signed_v<_Ty>; @@ -102,6 +103,7 @@ _Ty* __std_find_last_trivial(_Ty* _First, _Ty* _Last, const _TVal _Val) noexcept static_assert(_STD _Always_false<_Ty>, "Unexpected size"); } } +_STD_END #endif // _USE_STD_VECTOR_ALGORITHMS _STD_BEGIN @@ -9848,7 +9850,7 @@ namespace ranges { if (!_STD is_constant_evaluated()) { const auto _First_ptr = _STD to_address(_First); const auto _Last_ptr = _First_ptr + (_Last - _First); - const auto _Result = _CSTD __std_minmax_element(_First_ptr, _Last_ptr); + const auto _Result = _STD __std_minmax_element(_First_ptr, _Last_ptr); if constexpr (is_pointer_v<_It>) { return {_Result.first, _Result.second}; } else { @@ -10046,7 +10048,7 @@ namespace ranges { if (!_STD is_constant_evaluated()) { const auto _First_ptr = _STD to_address(_First); const auto _Last_ptr = _First_ptr + (_Last - _First); - const auto _Result = _CSTD __std_minmax_element(_First_ptr, _Last_ptr); + const auto _Result = _STD __std_minmax_element(_First_ptr, _Last_ptr); return {static_cast<_Vty>(*_Result.first), static_cast<_Vty>(*_Result.second)}; } } diff --git a/stl/inc/xutility b/stl/inc/xutility index d08fbaf5c3..7f498383f4 100644 --- a/stl/inc/xutility +++ b/stl/inc/xutility @@ -94,6 +94,7 @@ const void* __stdcall __std_max_element_4(const void* _First, const void* _Last, const void* __stdcall __std_max_element_8(const void* _First, const void* _Last, bool _Signed) noexcept; } // extern "C" +_STD_BEGIN template __declspec(noalias) size_t __std_count_trivial(_Ty* _First, _Ty* _Last, const _TVal _Val) noexcept { if constexpr (_STD is_pointer_v<_TVal> || _STD is_null_pointer_v<_TVal>) { @@ -186,6 +187,7 @@ _Ty* __std_max_element(_Ty* _First, _Ty* _Last) noexcept { static_assert(_STD _Always_false<_Ty>, "Unexpected size"); } } +_STD_END #endif // _USE_STD_VECTOR_ALGORITHMS diff --git a/stl/src/vector_algorithms.cpp b/stl/src/vector_algorithms.cpp index 11221bc695..d18b740304 100644 --- a/stl/src/vector_algorithms.cpp +++ b/stl/src/vector_algorithms.cpp @@ -1240,7 +1240,7 @@ namespace { // In optimized builds it avoids an extra call, as this function is too large to inline. template - const void* __stdcall __std_find_trivial_unsized(const void* _First, const _Ty _Val) noexcept { + const void* __stdcall __std_find_trivial_unsized_impl(const void* _First, const _Ty _Val) noexcept { #ifndef _M_ARM64EC if (_Use_avx2()) { _Zeroupper_on_exit _Guard; // TRANSITION, DevCom-10331414 @@ -1326,7 +1326,7 @@ namespace { } template - const void* __stdcall __std_find_trivial(const void* _First, const void* _Last, _Ty _Val) noexcept { + const void* __stdcall __std_find_trivial_impl(const void* _First, const void* _Last, _Ty _Val) noexcept { #ifndef _M_ARM64EC size_t _Size_bytes = _Byte_length(_First, _Last); @@ -1380,7 +1380,7 @@ namespace { } template - const void* __stdcall __std_find_last_trivial(const void* _First, const void* _Last, _Ty _Val) noexcept { + const void* __stdcall __std_find_last_trivial_impl(const void* _First, const void* _Last, _Ty _Val) noexcept { const void* const _Real_last = _Last; #ifndef _M_ARM64EC size_t _Size_bytes = _Byte_length(_First, _Last); @@ -1439,7 +1439,7 @@ namespace { template __declspec(noalias) size_t - __stdcall __std_count_trivial(const void* _First, const void* const _Last, const _Ty _Val) noexcept { + __stdcall __std_count_trivial_impl(const void* _First, const void* const _Last, const _Ty _Val) noexcept { size_t _Result = 0; #ifndef _M_ARM64EC @@ -1488,79 +1488,79 @@ namespace { extern "C" { const void* __stdcall __std_find_trivial_unsized_1(const void* const _First, const uint8_t _Val) noexcept { - return __std_find_trivial_unsized<_Find_traits_1>(_First, _Val); + return __std_find_trivial_unsized_impl<_Find_traits_1>(_First, _Val); } const void* __stdcall __std_find_trivial_unsized_2(const void* const _First, const uint16_t _Val) noexcept { - return __std_find_trivial_unsized<_Find_traits_2>(_First, _Val); + return __std_find_trivial_unsized_impl<_Find_traits_2>(_First, _Val); } const void* __stdcall __std_find_trivial_unsized_4(const void* const _First, const uint32_t _Val) noexcept { - return __std_find_trivial_unsized<_Find_traits_4>(_First, _Val); + return __std_find_trivial_unsized_impl<_Find_traits_4>(_First, _Val); } const void* __stdcall __std_find_trivial_unsized_8(const void* const _First, const uint64_t _Val) noexcept { - return __std_find_trivial_unsized<_Find_traits_8>(_First, _Val); + return __std_find_trivial_unsized_impl<_Find_traits_8>(_First, _Val); } const void* __stdcall __std_find_trivial_1( const void* const _First, const void* const _Last, const uint8_t _Val) noexcept { - return __std_find_trivial<_Find_traits_1>(_First, _Last, _Val); + return __std_find_trivial_impl<_Find_traits_1>(_First, _Last, _Val); } const void* __stdcall __std_find_trivial_2( const void* const _First, const void* const _Last, const uint16_t _Val) noexcept { - return __std_find_trivial<_Find_traits_2>(_First, _Last, _Val); + return __std_find_trivial_impl<_Find_traits_2>(_First, _Last, _Val); } const void* __stdcall __std_find_trivial_4( const void* const _First, const void* const _Last, const uint32_t _Val) noexcept { - return __std_find_trivial<_Find_traits_4>(_First, _Last, _Val); + return __std_find_trivial_impl<_Find_traits_4>(_First, _Last, _Val); } const void* __stdcall __std_find_trivial_8( const void* const _First, const void* const _Last, const uint64_t _Val) noexcept { - return __std_find_trivial<_Find_traits_8>(_First, _Last, _Val); + return __std_find_trivial_impl<_Find_traits_8>(_First, _Last, _Val); } const void* __stdcall __std_find_last_trivial_1( const void* const _First, const void* const _Last, const uint8_t _Val) noexcept { - return __std_find_last_trivial<_Find_traits_1>(_First, _Last, _Val); + return __std_find_last_trivial_impl<_Find_traits_1>(_First, _Last, _Val); } const void* __stdcall __std_find_last_trivial_2( const void* const _First, const void* const _Last, const uint16_t _Val) noexcept { - return __std_find_last_trivial<_Find_traits_2>(_First, _Last, _Val); + return __std_find_last_trivial_impl<_Find_traits_2>(_First, _Last, _Val); } const void* __stdcall __std_find_last_trivial_4( const void* const _First, const void* const _Last, const uint32_t _Val) noexcept { - return __std_find_last_trivial<_Find_traits_4>(_First, _Last, _Val); + return __std_find_last_trivial_impl<_Find_traits_4>(_First, _Last, _Val); } const void* __stdcall __std_find_last_trivial_8( const void* const _First, const void* const _Last, const uint64_t _Val) noexcept { - return __std_find_last_trivial<_Find_traits_8>(_First, _Last, _Val); + return __std_find_last_trivial_impl<_Find_traits_8>(_First, _Last, _Val); } __declspec(noalias) size_t __stdcall __std_count_trivial_1(const void* const _First, const void* const _Last, const uint8_t _Val) noexcept { - return __std_count_trivial<_Find_traits_1>(_First, _Last, _Val); + return __std_count_trivial_impl<_Find_traits_1>(_First, _Last, _Val); } __declspec(noalias) size_t __stdcall __std_count_trivial_2(const void* const _First, const void* const _Last, const uint16_t _Val) noexcept { - return __std_count_trivial<_Find_traits_2>(_First, _Last, _Val); + return __std_count_trivial_impl<_Find_traits_2>(_First, _Last, _Val); } __declspec(noalias) size_t __stdcall __std_count_trivial_4(const void* const _First, const void* const _Last, const uint32_t _Val) noexcept { - return __std_count_trivial<_Find_traits_4>(_First, _Last, _Val); + return __std_count_trivial_impl<_Find_traits_4>(_First, _Last, _Val); } __declspec(noalias) size_t __stdcall __std_count_trivial_8(const void* const _First, const void* const _Last, const uint64_t _Val) noexcept { - return __std_count_trivial<_Find_traits_8>(_First, _Last, _Val); + return __std_count_trivial_impl<_Find_traits_8>(_First, _Last, _Val); } } // extern "C"