|
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 > |
|