@@ -1423,26 +1423,25 @@ template <class _Type, template <class...> class _Template>
14231423struct _Is_specialization : bool_constant<_Is_specialization_v<_Type, _Template>> {};
14241424
14251425_EXPORT_STD template <class _Ty>
1426- _NODISCARD constexpr _Ty&& forward(
1427- remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue
1426+ _NODISCARD _MSVC_INTRINSIC constexpr _Ty&& forward(remove_reference_t<_Ty>& _Arg) noexcept {
14281427 return static_cast<_Ty&&>(_Arg);
14291428}
14301429
14311430_EXPORT_STD template <class _Ty>
1432- _NODISCARD constexpr _Ty&& forward(remove_reference_t<_Ty>&& _Arg) noexcept { // forward an rvalue as an rvalue
1431+ _NODISCARD _MSVC_INTRINSIC constexpr _Ty&& forward(remove_reference_t<_Ty>&& _Arg) noexcept {
14331432 static_assert(!is_lvalue_reference_v<_Ty>, "bad forward call");
14341433 return static_cast<_Ty&&>(_Arg);
14351434}
14361435
14371436_EXPORT_STD template <class _Ty>
1438- _NODISCARD constexpr remove_reference_t<_Ty>&& move(_Ty&& _Arg) noexcept { // forward _Arg as movable
1437+ _NODISCARD _MSVC_INTRINSIC constexpr remove_reference_t<_Ty>&& move(_Ty&& _Arg) noexcept {
14391438 return static_cast<remove_reference_t<_Ty>&&>(_Arg);
14401439}
14411440
14421441_EXPORT_STD template <class _Ty>
1443- _NODISCARD constexpr conditional_t<!is_nothrow_move_constructible_v<_Ty> && is_copy_constructible_v<_Ty>, const _Ty&,
1444- _Ty&&>
1445- move_if_noexcept(_Ty& _Arg) noexcept { // forward _Arg as movable, sometimes
1442+ _NODISCARD _MSVC_INTRINSIC constexpr //
1443+ conditional_t<!is_nothrow_move_constructible_v<_Ty> && is_copy_constructible_v<_Ty>, const _Ty&, _Ty&&>
1444+ move_if_noexcept(_Ty& _Arg) noexcept {
14461445 return _STD move(_Arg);
14471446}
14481447
0 commit comments