Lines Matching refs:_Tp
85 template <size_t _Ip, class ..._Tp>
86 using tuple_element_t = typename tuple_element <_Ip, _Tp...>::type; // C++14
142 template <class ..._Tp>
143 class _LIBCPP_TYPE_VIS_ONLY tuple_size<tuple<_Tp...> >
144 : public integral_constant<size_t, sizeof...(_Tp)>
150 template <size_t _Ip, class ..._Tp>
151 class _LIBCPP_TYPE_VIS_ONLY tuple_element<_Ip, tuple<_Tp...> >
154 typedef typename tuple_element<_Ip, __tuple_types<_Tp...> >::type type;
158 template <size_t _Ip, class ..._Tp>
159 using tuple_element_t = typename tuple_element <_Ip, _Tp...>::type;
210 template <class _Tp,
213 __lazy_not<is_same<typename decay<_Tp>::type, __tuple_leaf>>
214 , is_constructible<_Hp, _Tp>
219 explicit __tuple_leaf(_Tp&& __t) _NOEXCEPT_((is_nothrow_constructible<_Hp, _Tp>::value))
220 : value(_VSTD::forward<_Tp>(__t))
223 (is_lvalue_reference<_Tp>::value ||
224 is_same<typename remove_reference<_Tp>::type,
230 !is_lvalue_reference<_Tp>::value),
233 template <class _Tp, class _Alloc>
235 explicit __tuple_leaf(integral_constant<int, 0>, const _Alloc&, _Tp&& __t)
236 : value(_VSTD::forward<_Tp>(__t))
239 (is_lvalue_reference<_Tp>::value ||
240 is_same<typename remove_reference<_Tp>::type,
247 template <class _Tp, class _Alloc>
249 explicit __tuple_leaf(integral_constant<int, 1>, const _Alloc& __a, _Tp&& __t)
250 : value(allocator_arg_t(), __a, _VSTD::forward<_Tp>(__t))
253 (is_lvalue_reference<_Tp>::value ||
254 is_same<typename remove_reference<_Tp>::type,
261 template <class _Tp, class _Alloc>
263 explicit __tuple_leaf(integral_constant<int, 2>, const _Alloc& __a, _Tp&& __t)
264 : value(_VSTD::forward<_Tp>(__t), __a)
267 (is_lvalue_reference<_Tp>::value ||
268 is_same<typename remove_reference<_Tp>::type,
278 template <class _Tp>
281 operator=(_Tp&& __t) _NOEXCEPT_((is_nothrow_assignable<_Hp&, _Tp>::value))
283 value = _VSTD::forward<_Tp>(__t);
322 template <class _Tp,
325 __lazy_not<is_same<typename decay<_Tp>::type, __tuple_leaf>>
326 , is_constructible<_Hp, _Tp>
331 explicit __tuple_leaf(_Tp&& __t) _NOEXCEPT_((is_nothrow_constructible<_Hp, _Tp>::value))
332 : _Hp(_VSTD::forward<_Tp>(__t)) {}
334 template <class _Tp, class _Alloc>
336 explicit __tuple_leaf(integral_constant<int, 0>, const _Alloc&, _Tp&& __t)
337 : _Hp(_VSTD::forward<_Tp>(__t)) {}
339 template <class _Tp, class _Alloc>
341 explicit __tuple_leaf(integral_constant<int, 1>, const _Alloc& __a, _Tp&& __t)
342 : _Hp(allocator_arg_t(), __a, _VSTD::forward<_Tp>(__t)) {}
344 template <class _Tp, class _Alloc>
346 explicit __tuple_leaf(integral_constant<int, 2>, const _Alloc& __a, _Tp&& __t)
347 : _Hp(_VSTD::forward<_Tp>(__t), __a) {}
352 template <class _Tp>
355 operator=(_Tp&& __t) _NOEXCEPT_((is_nothrow_assignable<_Hp&, _Tp>::value))
357 _Hp::operator=(_VSTD::forward<_Tp>(__t));
373 template <class ..._Tp>
375 void __swallow(_Tp&&...) _NOEXCEPT {}
382 template <class _Tp>
385 template <class ..._Tp>
386 struct __all_default_constructible<__tuple_types<_Tp...>>
387 : __all<is_default_constructible<_Tp>::value...>
392 template<class _Indx, class ..._Tp> struct __tuple_impl;
394 template<size_t ..._Indx, class ..._Tp>
395 struct __tuple_impl<__tuple_indices<_Indx...>, _Tp...>
396 : public __tuple_leaf<_Indx, _Tp>...
400 _NOEXCEPT_(__all<is_nothrow_default_constructible<_Tp>::value...>::value) {}
431 __tuple_constructible<_Tuple, tuple<_Tp...> >::value
435 …__tuple_impl(_Tuple&& __t) _NOEXCEPT_((__all<is_nothrow_constructible<_Tp, typename tuple_element<…
437 : __tuple_leaf<_Indx, _Tp>(_VSTD::forward<typename tuple_element<_Indx,
444 __tuple_convertible<_Tuple, tuple<_Tp...> >::value
449 : __tuple_leaf<_Indx, _Tp>(__uses_alloc_ctor<_Tp, _Alloc, typename tuple_element<_Indx,
459 __tuple_assignable<_Tuple, tuple<_Tp...> >::value,
462 …operator=(_Tuple&& __t) _NOEXCEPT_((__all<is_nothrow_assignable<_Tp&, typename tuple_element<_Indx,
465 … __swallow(__tuple_leaf<_Indx, _Tp>::operator=(_VSTD::forward<typename tuple_element<_Indx,
475 …operator=(const __tuple_impl& __t) _NOEXCEPT_((__all<is_nothrow_copy_assignable<_Tp>::value...>::v…
477 …__swallow(__tuple_leaf<_Indx, _Tp>::operator=(static_cast<const __tuple_leaf<_Indx, _Tp>&>(__t).ge…
483 …operator=(__tuple_impl&& __t) _NOEXCEPT_((__all<is_nothrow_move_assignable<_Tp>::value...>::value))
485 …__swallow(__tuple_leaf<_Indx, _Tp>::operator=(_VSTD::forward<_Tp>(static_cast<__tuple_leaf<_Indx, …
491 _NOEXCEPT_(__all<__is_nothrow_swappable<_Tp>::value...>::value)
493 __swallow(__tuple_leaf<_Indx, _Tp>::swap(static_cast<__tuple_leaf<_Indx, _Tp>&>(__t))...);
497 template <class ..._Tp>
500 typedef __tuple_impl<typename __make_tuple_indices<sizeof...(_Tp)>::type, _Tp...> base;
513 __all<__dependent_type<is_default_constructible<_Tp>, _Dummy>::value...>::value
517 _NOEXCEPT_(__all<is_nothrow_default_constructible<_Tp>::value...>::value) {}
520 …explicit tuple(const _Tp& ... __t) _NOEXCEPT_((__all<is_nothrow_copy_constructible<_Tp>::value...>…
521 : base_(typename __make_tuple_indices<sizeof...(_Tp)>::type(),
522 typename __make_tuple_types<tuple, sizeof...(_Tp)>::type(),
530 tuple(allocator_arg_t, const _Alloc& __a, const _Tp& ... __t)
532 typename __make_tuple_indices<sizeof...(_Tp)>::type(),
533 typename __make_tuple_types<tuple, sizeof...(_Tp)>::type(),
542 sizeof...(_Up) <= sizeof...(_Tp) &&
547 sizeof...(_Up) < sizeof...(_Tp) ?
549 sizeof...(_Tp)>::type
552 typename __make_tuple_types<tuple, sizeof...(_Tp),
553 sizeof...(_Up) < sizeof...(_Tp) ?
555 sizeof...(_Tp)>::type
566 typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type,
567 typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type,
573 typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type(),
574 typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type(),
580 sizeof...(_Up) <= sizeof...(_Tp) &&
585 sizeof...(_Up) < sizeof...(_Tp) ?
587 sizeof...(_Tp)>::type
593 sizeof...(_Up) < sizeof...(_Tp) ?
595 sizeof...(_Tp)>::type
598 typename __make_tuple_types<tuple, sizeof...(_Tp),
599 sizeof...(_Up) < sizeof...(_Tp) ?
601 sizeof...(_Tp)>::type
613 typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type,
614 typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type,
620 typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type(),
621 typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type(),
627 sizeof...(_Up) <= sizeof...(_Tp) &&
632 sizeof...(_Up) < sizeof...(_Tp) ?
634 sizeof...(_Tp)>::type
637 typename __make_tuple_types<tuple, sizeof...(_Tp),
638 sizeof...(_Up) < sizeof...(_Tp) ?
640 sizeof...(_Tp)>::type
649 typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type(),
650 typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type(),
702 void swap(tuple& __t) _NOEXCEPT_(__all<__is_nothrow_swappable<_Tp>::value...>::value)
728 template <class ..._Tp>
732 __all<__is_swappable<_Tp>::value...>::value,
735 swap(tuple<_Tp...>& __t, tuple<_Tp...>& __u)
736 _NOEXCEPT_(__all<__is_nothrow_swappable<_Tp>::value...>::value)
741 template <size_t _Ip, class ..._Tp>
743 typename tuple_element<_Ip, tuple<_Tp...> >::type&
744 get(tuple<_Tp...>& __t) _NOEXCEPT
746 typedef typename tuple_element<_Ip, tuple<_Tp...> >::type type;
750 template <size_t _Ip, class ..._Tp>
752 const typename tuple_element<_Ip, tuple<_Tp...> >::type&
753 get(const tuple<_Tp...>& __t) _NOEXCEPT
755 typedef typename tuple_element<_Ip, tuple<_Tp...> >::type type;
759 template <size_t _Ip, class ..._Tp>
761 typename tuple_element<_Ip, tuple<_Tp...> >::type&&
762 get(tuple<_Tp...>&& __t) _NOEXCEPT
764 typedef typename tuple_element<_Ip, tuple<_Tp...> >::type type;
829 template <class ..._Tp>
831 tuple<_Tp&...>
832 tie(_Tp&... __t) _NOEXCEPT
834 return tuple<_Tp&...>(__t...);
840 template <class _Tp>
842 const __ignore_t& operator=(_Tp&&) const {return *this;}
847 template <class _Tp>
850 typedef _Tp type;
853 template <class _Tp>
854 struct __make_tuple_return_impl<reference_wrapper<_Tp> >
856 typedef _Tp& type;
859 template <class _Tp>
862 typedef typename __make_tuple_return_impl<typename decay<_Tp>::type>::type type;
865 template <class... _Tp>
867 tuple<typename __make_tuple_return<_Tp>::type...>
868 make_tuple(_Tp&&... __t)
870 return tuple<typename __make_tuple_return<_Tp>::type...>(_VSTD::forward<_Tp>(__t)...);
873 template <class... _Tp>
875 tuple<_Tp&&...>
876 forward_as_tuple(_Tp&&... __t) _NOEXCEPT
878 return tuple<_Tp&&...>(_VSTD::forward<_Tp>(__t)...);
884 template <class _Tp, class _Up>
886 bool operator()(const _Tp& __x, const _Up& __y)
895 template <class _Tp, class _Up>
897 bool operator()(const _Tp&, const _Up&)
903 template <class ..._Tp, class ..._Up>
906 operator==(const tuple<_Tp...>& __x, const tuple<_Up...>& __y)
908 return __tuple_equal<sizeof...(_Tp)>()(__x, __y);
911 template <class ..._Tp, class ..._Up>
914 operator!=(const tuple<_Tp...>& __x, const tuple<_Up...>& __y)
922 template <class _Tp, class _Up>
924 bool operator()(const _Tp& __x, const _Up& __y)
926 const size_t __idx = tuple_size<_Tp>::value - _Ip;
938 template <class _Tp, class _Up>
940 bool operator()(const _Tp&, const _Up&)
946 template <class ..._Tp, class ..._Up>
949 operator<(const tuple<_Tp...>& __x, const tuple<_Up...>& __y)
951 return __tuple_less<sizeof...(_Tp)>()(__x, __y);
954 template <class ..._Tp, class ..._Up>
957 operator>(const tuple<_Tp...>& __x, const tuple<_Up...>& __y)
962 template <class ..._Tp, class ..._Up>
965 operator>=(const tuple<_Tp...>& __x, const tuple<_Up...>& __y)
970 template <class ..._Tp, class ..._Up>
973 operator<=(const tuple<_Tp...>& __x, const tuple<_Up...>& __y)
980 template <class _Tp, class _Up> struct __tuple_cat_type;
1116 template <class ..._Tp, class _Alloc>
1117 struct _LIBCPP_TYPE_VIS_ONLY uses_allocator<tuple<_Tp...>, _Alloc>