| 
| template<class _Uty1  = _Ty1, class _Uty2  = _Ty2, class  = enable_if_t<is_default_constructible<_Uty1>::value						&& is_default_constructible<_Uty2>::value>>  | 
| constexpr  | pair () | 
|   | 
| template<class _Uty1  = _Ty1, class _Uty2  = _Ty2, class  = enable_if_t<is_copy_constructible<_Uty1>::value						&& is_copy_constructible<_Uty2>::value>, enable_if_t< is_convertible< const _Uty1 &, _Uty1 >::value &&is_convertible< const _Uty2 &, _Uty2 >::value, int >  = 0>  | 
| constexpr  | pair (const _Ty1 &_Val1, const _Ty2 &_Val2) | 
|   | 
| template<class _Uty1  = _Ty1, class _Uty2  = _Ty2, class  = enable_if_t<is_copy_constructible<_Uty1>::value						&& is_copy_constructible<_Uty2>::value>, enable_if_t<!is_convertible< const _Uty1 &, _Uty1 >::value||!is_convertible< const _Uty2 &, _Uty2 >::value, int >  = 0>  | 
| constexpr  | pair (const _Ty1 &_Val1, const _Ty2 &_Val2) | 
|   | 
|   | pair (const pair &)=default | 
|   | 
|   | pair (pair &&)=default | 
|   | 
| template<class _Other1 , class _Other2 , class  = enable_if_t<is_constructible<_Ty1, const _Other1&>::value						&& is_constructible<_Ty2, const _Other2&>::value>, enable_if_t< is_convertible< const _Other1 &, _Ty1 >::value &&is_convertible< const _Other2 &, _Ty2 >::value, int >  = 0>  | 
| constexpr  | pair (const pair< _Other1, _Other2 > &_Right) | 
|   | 
| template<class _Other1 , class _Other2 , class  = enable_if_t<is_constructible<_Ty1, const _Other1&>::value						&& is_constructible<_Ty2, const _Other2&>::value>, enable_if_t<!is_convertible< const _Other1 &, _Ty1 >::value||!is_convertible< const _Other2 &, _Ty2 >::value, int >  = 0>  | 
| constexpr  | pair (const pair< _Other1, _Other2 > &_Right) | 
|   | 
| template<class _Other1 , class _Other2 >  | 
| _Myt &  | operator= (const pair< _Other1, _Other2 > &_Right) | 
|   | 
| template<class _Tuple1 , class _Tuple2 , size_t... _Indexes1, size_t... _Indexes2>  | 
|   | pair (_Tuple1 &_Val1, _Tuple2 &_Val2, integer_sequence< size_t, _Indexes1...>, integer_sequence< size_t, _Indexes2...>) | 
|   | 
| template<class... _Types1, class... _Types2>  | 
|   | pair (piecewise_construct_t, tuple< _Types1...> _Val1, tuple< _Types2...> _Val2) | 
|   | 
| template<class _Other1 , class _Other2 , class  = enable_if_t<is_constructible<_Ty1, _Other1>::value						&& is_constructible<_Ty2, _Other2>::value>, enable_if_t< is_convertible< _Other1, _Ty1 >::value &&is_convertible< _Other2, _Ty2 >::value, int >  = 0>  | 
| constexpr  | pair (_Other1 &&_Val1, _Other2 &&_Val2) _NOEXCEPT_OP((is_nothrow_constructible< _Ty1 | 
|   | 
| constexpr _Other1::value  | second (_STD forward< _Other2 >(_Val2)) | 
|   | 
| template<class _Other1 , class _Other2 , class  = enable_if_t<is_constructible<_Ty1, _Other1>::value						&& is_constructible<_Ty2, _Other2>::value>, enable_if_t<!is_convertible< _Other1, _Ty1 >::value||!is_convertible< _Other2, _Ty2 >::value, int >  = 0>  | 
| constexpr  | pair (_Other1 &&_Val1, _Other2 &&_Val2) _NOEXCEPT_OP((is_nothrow_constructible< _Ty1 | 
|   | 
| constexpr _Other1::value  | second (_STD forward< _Other2 >(_Val2)) | 
|   | 
| template<class _Other1 , class _Other2 , class  = enable_if_t<is_constructible<_Ty1, _Other1>::value						&& is_constructible<_Ty2, _Other2>::value>, enable_if_t< is_convertible< _Other1, _Ty1 >::value &&is_convertible< _Other2, _Ty2 >::value, int >  = 0>  | 
| constexpr  | pair (pair< _Other1, _Other2 > &&_Right) _NOEXCEPT_OP((is_nothrow_constructible< _Ty1 | 
|   | 
| constexpr _Other1::value  | second (_STD forward< _Other2 >(_Right.second)) | 
|   | 
| template<class _Other1 , class _Other2 , class  = enable_if_t<is_constructible<_Ty1, _Other1>::value						&& is_constructible<_Ty2, _Other2>::value>, enable_if_t<!is_convertible< _Other1, _Ty1 >::value||!is_convertible< _Other2, _Ty2 >::value, int >  = 0>  | 
| constexpr  | pair (pair< _Other1, _Other2 > &&_Right) _NOEXCEPT_OP((is_nothrow_constructible< _Ty1 | 
|   | 
| constexpr _Other1::value  | second (_STD forward< _Other2 >(_Right.second)) | 
|   | 
| template<class _Other1 , class _Other2 >  | 
| _Myt &  | operator= (pair< _Other1, _Other2 > &&_Right) | 
|   | 
| _Myt &  | operator= (_Myt &&_Right) _NOEXCEPT_OP((is_nothrow_move_assignable< _Ty1 > | 
|   | 
| _Myt &  | operator= (const _Myt &_Right) | 
|   | 
| void  | swap (_Myt &_Right) _NOEXCEPT_OP(_Is_nothrow_swappable< _Ty1 > | 
|   |