STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Classes | Namespaces | Macros | Functions | Variables
tuple File Reference
#include <type_traits>
#include <xutility>
#include <new>

Classes

struct  _Tuple_enable< _Src, _Dest >
 
struct  _Tuple_enable< tuple<>, tuple<> >
 
struct  _Tuple_enable< tuple< _Src0, _Types1...>, tuple< _Dest0, _Types2...> >
 
class  _Ignore
 
struct  _Tuple_alloc_t
 
struct  _Tuple_val< _Ty >
 
class  tuple< _Types >
 
class  tuple<>
 
class  tuple< _This, _Rest...>
 
struct  tuple_element< _Index, _Tuple >
 
struct  tuple_element< 0, tuple< _This, _Rest...> >
 
struct  tuple_element< _Index, tuple< _This, _Rest...> >
 
struct  tuple_element< _Index, const _Tuple >
 
struct  tuple_element< _Index, volatile _Tuple >
 
struct  tuple_element< _Index, const volatile _Tuple >
 
struct  _Make_arg_idx1< _Arg_idx_type, _Types >
 
struct  _Make_arg_idx1< _Arg_idx< _Indexes...>, _Ty, _Types...>
 
struct  _Make_arg_idx< _Types >
 
struct  _Cat_arg_idx< _Arg_idx_type1, _Arg_idx_type2 >
 
struct  _Cat_arg_idx< _Arg_idx< _Indexes1...>, _Arg_idx< _Indexes2...> >
 
struct  _Repeat_for< _Nx, _Ty >
 
struct  _Tuple_cat2< _Ret, _Kx_arg, _Ix_arg, _Ix_next, _Tuples >
 
struct  _Tuple_cat2< tuple< _Types1...>, _Kx_arg, _Arg_idx< _Ix...>, _Ix_next, tuple< _Types2...>, _Rest...>
 
struct  _Tuple_cat1< _Tuples >
 
struct  std::uses_allocator< tuple< _Types...>, _Alloc >
 

Namespaces

 tr1
 

Macros

#define _TUPLE_
 

Functions

template<class... _Types1, class... _Types2>
bool operator== (const tuple< _Types1...> &_Left, const tuple< _Types2...> &_Right)
 
template<class... _Types1, class... _Types2>
bool operator!= (const tuple< _Types1...> &_Left, const tuple< _Types2...> &_Right)
 
template<class... _Types1, class... _Types2>
bool operator< (const tuple< _Types1...> &_Left, const tuple< _Types2...> &_Right)
 
template<class... _Types1, class... _Types2>
bool operator>= (const tuple< _Types1...> &_Left, const tuple< _Types2...> &_Right)
 
template<class... _Types1, class... _Types2>
bool operator> (const tuple< _Types1...> &_Left, const tuple< _Types2...> &_Right)
 
template<class... _Types1, class... _Types2>
bool operator<= (const tuple< _Types1...> &_Left, const tuple< _Types2...> &_Right)
 
template<class... _Types>
void swap (tuple< _Types...> &_Left, tuple< _Types...> &_Right) _NOEXCEPT_OP(_NOEXCEPT_OP(_Left.swap(_Right)))
 
template<size_t _Index, class... _Types>
tuple_element< _Index, tuple< _Types...> >::_Rtype get (tuple< _Types...> &_Tuple)
 
template<size_t _Index, class... _Types>
tuple_element< _Index, tuple< _Types...> >::_Ctype get (const tuple< _Types...> &_Tuple)
 
template<size_t _Index, class... _Types>
tuple_element< _Index, tuple< _Types...> >::_RRtype get (tuple< _Types...> &&_Tuple)
 
template<class... _Types>
tuple< typename _Unrefwrap< _Types >::type...> make_tuple (_Types &&..._Args)
 
template<class... _Types>
tuple< _Types &...> tie (_Types &..._Args) _NOEXCEPT
 
template<class... _Types>
tuple< _Types &&...> forward_as_tuple (_Types &&..._Args) _NOEXCEPT
 
template<class _Ret , size_t... _Kx, size_t... _Ix, class _Ty >
_Ret _Tuple_cat (_Arg_idx< _Kx...>, _Arg_idx< _Ix...>, _Ty &&_Arg)
 
template<class... _Tuples>
_Tuple_cat1< _Tuples...>::type tuple_cat (_Tuples &&..._Tpls)
 

Variables

const _Ignore ignore
 
const _Tuple_alloc_t _Tuple_alloc = _Tuple_alloc_t()
 
_Types1 &&::value _Val2
 

Macro Definition Documentation

#define _TUPLE_

Function Documentation

template<class _Ret , size_t... _Kx, size_t... _Ix, class _Ty >
_Ret _Tuple_cat ( _Arg_idx< _Kx...>  ,
_Arg_idx< _Ix...>  ,
_Ty &&  _Arg 
)
inline
718  { // concatenate tuples
719  return (_Ret(_STD get<_Kx>(_STD get<_Ix>(_STD forward<_Ty>(_Arg)))...));
720  }
template<class... _Types>
tuple<_Types&&...> forward_as_tuple ( _Types &&...  _Args)
inline
628  { // forward arguments in a tuple
629  return (tuple<_Types&&...>(_STD forward<_Types>(_Args)...));
630  }
Definition: tuple:127
template<size_t _Index, class... _Types>
tuple_element<_Index, tuple<_Types...> >::_Rtype get ( tuple< _Types...> &  _Tuple)
inline
576  { // get reference to _Index element of tuple
577  typedef typename tuple_element<_Index, tuple<_Types...> >::_Ttype
578  _Ttype;
579  return (((_Ttype&)_Tuple)._Myfirst._Val);
580  }
Definition: tuple:522
Definition: tuple:127
template<size_t _Index, class... _Types>
tuple_element<_Index, tuple<_Types...> >::_Ctype get ( const tuple< _Types...> &  _Tuple)
inline
586  { // get const reference to _Index element of tuple
587  typedef typename tuple_element<_Index, tuple<_Types...> >::_Ttype
588  _Ttype;
589  return (((_Ttype&)_Tuple)._Myfirst._Val);
590  }
Definition: tuple:522
Definition: tuple:127
template<size_t _Index, class... _Types>
tuple_element<_Index, tuple<_Types...> >::_RRtype get ( tuple< _Types...> &&  _Tuple)
inline
596  { // get rvalue reference to _Index element of tuple
597  typedef typename tuple_element<_Index, tuple<_Types...> >::_Ttype
598  _Ttype;
599  typedef typename tuple_element<_Index, tuple<_Types...> >::_RRtype
600  _RRtype;
601  return (_STD forward<_RRtype>(((_Ttype&)_Tuple)._Myfirst._Val));
602  }
Definition: tuple:522
Definition: tuple:127
template<class... _Types>
tuple<typename _Unrefwrap<_Types>::type...> make_tuple ( _Types &&...  _Args)
inline
608  { // make tuple from elements
609  typedef tuple<typename _Unrefwrap<_Types>::type...> _Ttype;
610  return (_Ttype(_STD forward<_Types>(_Args)...));
611  }
Definition: tuple:127
template<class... _Types1, class... _Types2>
bool operator!= ( const tuple< _Types1...> &  _Left,
const tuple< _Types2...> &  _Right 
)
inline
474  { // test if _Left != _Right
475  return (!(_Left == _Right));
476  }
template<class... _Types1, class... _Types2>
bool operator< ( const tuple< _Types1...> &  _Left,
const tuple< _Types2...> &  _Right 
)
inline
482  { // test if _Left < _Right
483  return (_Left._Less(_Right));
484  }
template<class... _Types1, class... _Types2>
bool operator<= ( const tuple< _Types1...> &  _Left,
const tuple< _Types2...> &  _Right 
)
inline
506  { // test if _Left <= _Right
507  return (!(_Right < _Left));
508  }
template<class... _Types1, class... _Types2>
bool operator== ( const tuple< _Types1...> &  _Left,
const tuple< _Types2...> &  _Right 
)
inline
466  { // test if _Left == _Right
467  return (_Left._Equals(_Right));
468  }
template<class... _Types1, class... _Types2>
bool operator> ( const tuple< _Types1...> &  _Left,
const tuple< _Types2...> &  _Right 
)
inline
498  { // test if _Left > _Right
499  return (_Right < _Left);
500  }
template<class... _Types1, class... _Types2>
bool operator>= ( const tuple< _Types1...> &  _Left,
const tuple< _Types2...> &  _Right 
)
inline
490  { // test if _Left >= _Right
491  return (!(_Left < _Right));
492  }
template<class... _Types>
void swap ( tuple< _Types...> &  _Left,
tuple< _Types...> &  _Right 
)
inline
514  { // swap _Left and _Right
515  return (_Left.swap(_Right));
516  }
template<class... _Types>
tuple<_Types&...> tie ( _Types &...  _Args)
inline
617  { // make tuple from elements
618  typedef tuple<_Types&...> _Ttype;
619  return (_Ttype(_Args...));
620  }
Definition: tuple:127
template<class... _Tuples>
_Tuple_cat1<_Tuples...>::type tuple_cat ( _Tuples &&...  _Tpls)
inline
725  { // concatenate tuples
726  typedef _Tuple_cat1<_Tuples...> _Cat1;
727  return (_Tuple_cat<typename _Cat1::type>(
728  typename _Cat1::_Kx_arg_idx(), typename _Cat1::_Ix_arg_idx(),
729  _STD forward_as_tuple(_STD forward<_Tuples>(_Tpls)...)));
730  }
tuple< _Types &&...> forward_as_tuple(_Types &&..._Args) _NOEXCEPT
Definition: tuple:627
Definition: tuple:707

Variable Documentation

const _Tuple_alloc_t _Tuple_alloc = _Tuple_alloc_t()
_Types1&& ::value _Val2
const _Ignore ignore