Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
UniTuple< T, N > Class Template Reference

Tuple of N elements of type T. More...

#include <UniTuple.h>

Inheritance diagram for UniTuple< T, N >:
Inheritance graph
[legend]
Collaboration diagram for UniTuple< T, N >:
Collaboration graph
[legend]

Public Types

typedef T value_type
 
typedef UniTuple< T, N > tuple_t
 
typedef T * iterator
 
typedef const T * const_iterator
 
- Public Types inherited from TupleBase< S, N >
typedef TupleBase< S, N > tuplebase_t
 
typedef S value_type
 
typedef S * iterator
 
typedef S const * const_iterator
 

Public Member Functions

template<typename ... TT>
 UniTuple (const TT &... args)
 
 UniTuple (const UniTuple< T, N > &t)
 Copy constructor.
 
template<typename S >
 UniTuple (std::initializer_list< S > l)
 
tuple_toperator= (const tuple_t &t)
 
tuple_toperator= (const value_type &value)
 
template<typename S >
tuple_toperator= (std::initializer_list< S > l)
 
virtual const_iterator begin () const override final
 
virtual const_iterator end () const override final
 
virtual iterator begin () override final
 
virtual iterator end () override final
 
const tuple_ttuple () const
 
tuple_ttuple ()
 
template<typename ... TT>
tuple_ttuple (const TT &... args)
 
void debug (std::ostream &ostr) const
 
- Public Member Functions inherited from TupleBase< S, N >
const S & at (size_t i) const
 Return const reference to element i.
 
const S & operator[] (size_t i) const
 
S & at (size_t i)
 Return reference to element i.
 
S & operator[] (size_t i)
 
bool operator== (const tuplebase_t &t) const
 Equality operator.
 
bool operator== (const value_type &t) const
 Equality operator against single value.
 
bool operator!= (const tuplebase_t &t) const
 Inequality operator.
 
template<class T >
T & toSequence (T &sequence) const
 Copy elements to a Sequence, like stl::list, stl::set or stl::vector.
 
void set (const tuplebase_t &t)
 
template<class T2 , size_t N2 = 2>
void set (const TupleBase< T2, N2 > &t)
 Assign tuple of different type and/or size.
 
void set (const S &arg)
 
template<typename ... SS>
void set (const S &arg, const SS &... rest)
 Set element(s).
 
template<typename T >
void set (std::initializer_list< T > l)
 
template<class T >
tuplebase_tassignSequence (T &sequence, bool LENIENT=false)
 Proposed for tuples only; derived classes should not shadow this.
 
void fill (S i)
 Set all the elements to i.
 
void clear ()
 
virtual void toStreamFormatted (std::ostream &ostr, char separator=',') const
 
virtual void toStream (std::ostream &ostr) const
 
std::string toStr (char separator=',') const
 
virtual void updateTuple ()
 

Static Public Attributes

static const size_t tuple_size = N
 
- Static Public Attributes inherited from TupleBase< S, N >
static const size_t storageTypeSize = sizeof(S)
 

Protected Member Functions

T & next ()
 
template<size_t N2>
 UniTuple (UniTuple< T, N2 > &tuple, size_t i)
 
- Protected Member Functions inherited from TupleBase< S, N >
void setIndexed (size_t i)
 Argument stack endpoint function; final step of variadic argument set(arg, ...) .
 
template<typename T2 , typename ... TT>
void setIndexed (size_t i, T2 arg, const TT &... rest)
 Worker called by set(T2 arg, T2 arg2, ...)
 

Protected Attributes

const iterator start
 

Additional Inherited Members

- Static Public Member Functions inherited from TupleBase< S, N >
static size_t size ()
 Return the number of elements.
 

Detailed Description

template<class T, size_t N = 2>
class drain::UniTuple< T, N >

Tuple of N elements of type T.

Uniformity means that all the elements are of same type unlike in std::tuple.

Member Function Documentation

◆ begin() [1/2]

template<class T , size_t N = 2>
virtual const_iterator begin ( ) const
inlinefinaloverridevirtual

Implements TupleBase< S, N >.

◆ begin() [2/2]

template<class T , size_t N = 2>
virtual iterator begin ( )
inlinefinaloverridevirtual

Implements TupleBase< S, N >.

◆ end() [1/2]

template<class T , size_t N = 2>
virtual const_iterator end ( ) const
inlinefinaloverridevirtual

Implements TupleBase< S, N >.

◆ end() [2/2]

template<class T , size_t N = 2>
virtual iterator end ( )
inlinefinaloverridevirtual

Implements TupleBase< S, N >.


The documentation for this class was generated from the following file: