diff --git a/libcxx/include/__functional/bind.h b/libcxx/include/__functional/bind.h --- a/libcxx/include/__functional/bind.h +++ b/libcxx/include/__functional/bind.h @@ -98,7 +98,7 @@ typename __invoke_of<_Ti&, _Uj...>::type __mu_expand(_Ti& __ti, tuple<_Uj...>& __uj, __tuple_indices<_Indx...>) { - return __ti(_VSTD::forward<_Uj>(_VSTD::get<_Indx>(__uj))...); + return __ti(static_cast<_Uj&&>(_VSTD::get<_Indx>(__uj))...); } template @@ -133,7 +133,7 @@ __mu(_Ti&, _Uj& __uj) { const size_t _Indx = is_placeholder<_Ti>::value - 1; - return _VSTD::forward::type>(_VSTD::get<_Indx>(__uj)); + return static_cast::type&&>(_VSTD::get<_Indx>(__uj)); } template diff --git a/libcxx/include/__iterator/common_iterator.h b/libcxx/include/__iterator/common_iterator.h --- a/libcxx/include/__iterator/common_iterator.h +++ b/libcxx/include/__iterator/common_iterator.h @@ -40,27 +40,26 @@ class __proxy { friend common_iterator; - iter_value_t<_Iter> __value; - // We can move __x because the only caller verifies that __x is not a reference. + iter_value_t<_Iter> __value_; constexpr explicit __proxy(iter_reference_t<_Iter>&& __x) - : __value(_VSTD::move(__x)) {} + : __value_(static_cast&&>(__x)) {} public: constexpr const iter_value_t<_Iter>* operator->() const noexcept { - return _VSTD::addressof(__value); + return _VSTD::addressof(__value_); } }; class __postfix_proxy { friend common_iterator; - iter_value_t<_Iter> __value; + iter_value_t<_Iter> __value_; constexpr explicit __postfix_proxy(iter_reference_t<_Iter>&& __x) - : __value(_VSTD::forward>(__x)) {} + : __value_(static_cast&&>(__x)) {} public: constexpr const iter_value_t<_Iter>& operator*() const noexcept { - return __value; + return __value_; } }; diff --git a/libcxx/include/__memory/compressed_pair.h b/libcxx/include/__memory/compressed_pair.h --- a/libcxx/include/__memory/compressed_pair.h +++ b/libcxx/include/__memory/compressed_pair.h @@ -43,7 +43,7 @@ template _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_AFTER_CXX14 explicit __compressed_pair_elem(piecewise_construct_t, tuple<_Args...> __args, __tuple_indices<_Indices...>) - : __value_(std::forward<_Args>(std::get<_Indices>(__args))...) {} + : __value_(static_cast<_Args&&>(std::get<_Indices>(__args))...) {} #endif _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_AFTER_CXX11 reference __get() _NOEXCEPT { return __value_; } @@ -72,7 +72,7 @@ template _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_AFTER_CXX14 __compressed_pair_elem(piecewise_construct_t, tuple<_Args...> __args, __tuple_indices<_Indices...>) - : __value_type(std::forward<_Args>(std::get<_Indices>(__args))...) {} + : __value_type(static_cast<_Args&&>(std::get<_Indices>(__args))...) {} #endif _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_AFTER_CXX11 reference __get() _NOEXCEPT { return *this; } diff --git a/libcxx/include/__memory/unique_ptr.h b/libcxx/include/__memory/unique_ptr.h --- a/libcxx/include/__memory/unique_ptr.h +++ b/libcxx/include/__memory/unique_ptr.h @@ -207,7 +207,7 @@ _LIBCPP_INLINE_VISIBILITY unique_ptr(unique_ptr&& __u) _NOEXCEPT - : __ptr_(__u.release(), _VSTD::forward(__u.get_deleter())) { + : __ptr_(__u.release(), static_cast(__u.get_deleter())) { } template _LIBCPP_INLINE_VISIBILITY unique_ptr(unique_ptr<_Up, _Ep>&& __u) _NOEXCEPT - : __ptr_(__u.release(), _VSTD::forward<_Ep>(__u.get_deleter())) {} + : __ptr_(__u.release(), static_cast<_Ep&&>(__u.get_deleter())) {} #if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR) template @@ -231,7 +231,7 @@ _LIBCPP_INLINE_VISIBILITY unique_ptr& operator=(unique_ptr&& __u) _NOEXCEPT { reset(__u.release()); - __ptr_.second() = _VSTD::forward(__u.get_deleter()); + __ptr_.second() = static_cast(__u.get_deleter()); return *this; } @@ -242,7 +242,7 @@ _LIBCPP_INLINE_VISIBILITY unique_ptr& operator=(unique_ptr<_Up, _Ep>&& __u) _NOEXCEPT { reset(__u.release()); - __ptr_.second() = _VSTD::forward<_Ep>(__u.get_deleter()); + __ptr_.second() = static_cast<_Ep&&>(__u.get_deleter()); return *this; } @@ -449,13 +449,13 @@ _LIBCPP_INLINE_VISIBILITY unique_ptr(unique_ptr&& __u) _NOEXCEPT - : __ptr_(__u.release(), _VSTD::forward(__u.get_deleter())) { + : __ptr_(__u.release(), static_cast(__u.get_deleter())) { } _LIBCPP_INLINE_VISIBILITY unique_ptr& operator=(unique_ptr&& __u) _NOEXCEPT { reset(__u.release()); - __ptr_.second() = _VSTD::forward(__u.get_deleter()); + __ptr_.second() = static_cast(__u.get_deleter()); return *this; } @@ -465,7 +465,7 @@ > _LIBCPP_INLINE_VISIBILITY unique_ptr(unique_ptr<_Up, _Ep>&& __u) _NOEXCEPT - : __ptr_(__u.release(), _VSTD::forward<_Ep>(__u.get_deleter())) { + : __ptr_(__u.release(), static_cast<_Ep&&>(__u.get_deleter())) { } template && __u) _NOEXCEPT { reset(__u.release()); - __ptr_.second() = _VSTD::forward<_Ep>(__u.get_deleter()); + __ptr_.second() = static_cast<_Ep&&>(__u.get_deleter()); return *this; } diff --git a/libcxx/include/__utility/pair.h b/libcxx/include/__utility/pair.h --- a/libcxx/include/__utility/pair.h +++ b/libcxx/include/__utility/pair.h @@ -218,10 +218,10 @@ _CheckArgs::template __enable_explicit<_U1, _U2>() >::type* = nullptr> _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 - explicit pair(pair<_U1, _U2>&&__p) + explicit pair(pair<_U1, _U2>&& __p) _NOEXCEPT_((is_nothrow_constructible::value && is_nothrow_constructible::value)) - : first(_VSTD::forward<_U1>(__p.first)), second(_VSTD::forward<_U2>(__p.second)) {} + : first(static_cast<_U1&&>(__p.first)), second(static_cast<_U2&&>(__p.second)) {} template() @@ -230,7 +230,7 @@ pair(pair<_U1, _U2>&& __p) _NOEXCEPT_((is_nothrow_constructible::value && is_nothrow_constructible::value)) - : first(_VSTD::forward<_U1>(__p.first)), second(_VSTD::forward<_U2>(__p.second)) {} + : first(static_cast<_U1&&>(__p.first)), second(static_cast<_U2&&>(__p.second)) {} template::template __enable_explicit<_Tuple>() @@ -487,13 +487,13 @@ static _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 _T1&& - get(pair<_T1, _T2>&& __p) _NOEXCEPT {return _VSTD::forward<_T1>(__p.first);} + get(pair<_T1, _T2>&& __p) _NOEXCEPT {return static_cast<_T1&&>(__p.first);} template static _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 const _T1&& - get(const pair<_T1, _T2>&& __p) _NOEXCEPT {return _VSTD::forward(__p.first);} + get(const pair<_T1, _T2>&& __p) _NOEXCEPT {return static_cast(__p.first);} #endif // _LIBCPP_CXX03_LANG }; @@ -517,13 +517,13 @@ static _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 _T2&& - get(pair<_T1, _T2>&& __p) _NOEXCEPT {return _VSTD::forward<_T2>(__p.second);} + get(pair<_T1, _T2>&& __p) _NOEXCEPT {return static_cast<_T2&&>(__p.second);} template static _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 const _T2&& - get(const pair<_T1, _T2>&& __p) _NOEXCEPT {return _VSTD::forward(__p.second);} + get(const pair<_T1, _T2>&& __p) _NOEXCEPT {return static_cast(__p.second);} #endif // _LIBCPP_CXX03_LANG }; diff --git a/libcxx/include/tuple b/libcxx/include/tuple --- a/libcxx/include/tuple +++ b/libcxx/include/tuple @@ -433,8 +433,8 @@ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 __tuple_impl(_Tuple&& __t) _NOEXCEPT_((__all::type>::type>::value...>::value)) - : __tuple_leaf<_Indx, _Tp>(_VSTD::forward::type>::type>(_VSTD::get<_Indx>(__t)))... + : __tuple_leaf<_Indx, _Tp>(static_cast::type>::type&&>(_VSTD::get<_Indx>(__t)))... {} template (__uses_alloc_ctor<_Tp, _Alloc, typename tuple_element<_Indx, typename __make_tuple_types<_Tuple>::type>::type>(), __a, - _VSTD::forward::type>::type>(_VSTD::get<_Indx>(__t)))... + static_cast::type>::type&&>(_VSTD::get<_Indx>(__t)))... {} __tuple_impl(const __tuple_impl&) = default; @@ -472,7 +472,7 @@ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 void __memberwise_forward_assign(_Dest& __dest, _Source&& __source, __tuple_types<_Up...>, __tuple_indices<_Np...>) { _VSTD::__swallow((( - _VSTD::get<_Np>(__dest) = _VSTD::forward<_Up>(_VSTD::get<_Np>(__source)) + _VSTD::get<_Np>(__dest) = static_cast<_Up&&>(_VSTD::get<_Np>(__source)) ), void(), 0)...); } @@ -1541,7 +1541,7 @@ operator()(tuple<_Types...> __t, _Tuple0&& __t0) { return _VSTD::forward_as_tuple( - _VSTD::forward<_Types>(_VSTD::get<_I0>(__t))..., + static_cast<_Types&&>(_VSTD::get<_I0>(__t))..., _VSTD::get<_J0>(_VSTD::forward<_Tuple0>(__t0))...); } @@ -1560,7 +1560,7 @@ tuple_size<_T0>::value>::type, typename __make_tuple_indices::value>::type>()( _VSTD::forward_as_tuple( - _VSTD::forward<_Types>(_VSTD::get<_I0>(__t))..., + static_cast<_Types&&>(_VSTD::get<_I0>(__t))..., _VSTD::get<_J0>(_VSTD::forward<_Tuple0>(__t0))...), _VSTD::forward<_Tuple1>(__t1), _VSTD::forward<_Tuples>(__tpls)...); } @@ -1588,8 +1588,8 @@ pair<_T1, _T2>::pair(piecewise_construct_t, tuple<_Args1...>& __first_args, tuple<_Args2...>& __second_args, __tuple_indices<_I1...>, __tuple_indices<_I2...>) - : first(_VSTD::forward<_Args1>(_VSTD::get<_I1>( __first_args))...), - second(_VSTD::forward<_Args2>(_VSTD::get<_I2>(__second_args))...) + : first(static_cast<_Args1&&>(_VSTD::get<_I1>(__first_args))...), + second(static_cast<_Args2&&>(_VSTD::get<_I2>(__second_args))...) { }