34#if __cplusplus < 201103L
38namespace std _GLIBCXX_VISIBILITY(default)
40_GLIBCXX_BEGIN_NAMESPACE_VERSION
47 template<
typename _Tp>
48 inline _GLIBCXX_CONSTEXPR _Tp*
52#if __cplusplus >= 201103L
54_GLIBCXX_END_NAMESPACE_VERSION
59namespace std _GLIBCXX_VISIBILITY(default)
61_GLIBCXX_BEGIN_NAMESPACE_VERSION
74 template<
typename _Tp>
78 {
return static_cast<_Tp&&
>(__t); }
86 template<
typename _Tp>
92 "std::forward must not be used to convert an rvalue to an lvalue");
93 return static_cast<_Tp&&
>(__t);
101 template<
typename _Tp>
108 template<
typename _Tp>
109 struct __move_if_noexcept_cond
110 :
public __and_<__not_<is_nothrow_move_constructible<_Tp>>,
111 is_copy_constructible<_Tp>>::type { };
121 template<
typename _Tp>
124 conditional<__move_if_noexcept_cond<_Tp>::value,
const _Tp&, _Tp&&>::type
130#if __cplusplus > 201402L
133# define __cpp_lib_addressof_constexpr 201603
142 template<
typename _Tp>
144 inline _GLIBCXX17_CONSTEXPR _Tp*
150 template<
typename _Tp>
151 const _Tp*
addressof(
const _Tp&&) =
delete;
154 template <
typename _Tp,
typename _Up = _Tp>
157 __exchange(_Tp& __obj, _Up&& __new_val)
166#define _GLIBCXX_FWDREF(_Tp) _Tp&&
167#define _GLIBCXX_MOVE(__val) std::move(__val)
168#define _GLIBCXX_FORWARD(_Tp, __val) std::forward<_Tp>(__val)
170#define _GLIBCXX_FWDREF(_Tp) const _Tp&
171#define _GLIBCXX_MOVE(__val) (__val)
172#define _GLIBCXX_FORWARD(_Tp, __val) (__val)
186 template<
typename _Tp>
189#if __cplusplus >= 201103L
190 typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>,
191 is_move_constructible<_Tp>,
192 is_move_assignable<_Tp>>::value>::type
200#if __cplusplus < 201103L
204 _Tp
__tmp = _GLIBCXX_MOVE(__a);
205 __a = _GLIBCXX_MOVE(__b);
206 __b = _GLIBCXX_MOVE(
__tmp);
212 template<
typename _Tp,
size_t _Nm>
215#if __cplusplus >= 201103L
216 typename enable_if<__is_swappable<_Tp>::value>::type
223 for (
size_t __n = 0; __n <
_Nm; ++__n)
224 swap(__a[__n], __b[__n]);
228_GLIBCXX_END_NAMESPACE_VERSION
constexpr _Tp * addressof(_Tp &__r) noexcept
Returns the actual address of the object or function referenced by r, even in the presence of an over...
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
constexpr conditional< __move_if_noexcept_cond< _Tp >::value, const_Tp &, _Tp && >::type move_if_noexcept(_Tp &__x) noexcept
Conditionally convert a value to an rvalue.
void swap(any &__x, any &__y) noexcept
Exchange the states of two any objects.
constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
ISO C++ entities toplevel namespace is std.