Classes | Functions
utility::tuple Namespace Reference

Classes

struct  ElemTypeHolder
 ElemTypeHolder class is used to specify the types of the elements inside the tuple. More...
 
struct  ElemTypeHolder< 0, Tuple< T, Ts... > >
 specialisation of the ElemTypeHolder class when the number of elements inside the tuple is 1 More...
 
struct  ElemTypeHolder< k, Tuple< T, Ts... > >
 specialisation of the ElemTypeHolder class when the number of elements inside the tuple is bigger than 1. It recursively calls itself to detect the type of each element in the tuple More...
 
struct  IndexList
 Creates a list of index from the elements in the tuple. More...
 
struct  IndexRange
 IndexRange that returns a [MIN, MAX) index range. More...
 
struct  RangeBuilder
 Collects internal details for generating index ranges [MIN, MAX) Declare primary template for index range builder. More...
 
struct  RangeBuilder< MIN, MIN, Is... >
 base Step: Specialisation of the RangeBuilder when the MIN==MAX. In this case the Is... is [0 to sizeof...(tuple elements)) More...
 
struct  StaticIf
 The StaticIf struct is used to statically choose the type based on the condition. More...
 
struct  StaticIf< true, T >
 specialisation of the StaticIf when the condition is true More...
 
struct  Tuple
 is a fixed-size collection of heterogeneous values Ts... - the types of the elements that the tuple stores. Empty list is supported. More...
 
struct  Tuple< T, Ts... >
 specialisation of the Tuple class when the tuple has at least one element. More...
 

Functions

template<typename... Args, typename T >
Tuple< Args..., T > append (Tuple< Args... > t, T a)
 the deduction function for append_base that automatically generate the IndexRange More...
 
template<typename... Args1, typename... Args2>
Tuple< Args1..., Args2... > append (Tuple< Args1... > t1, Tuple< Args2... > t2)
 deduction function for append_base when we are appending tuple t1 by tuple t2. In this case the IndexRange for both tuple are automatically generated. More...
 
template<typename... Args, typename T , size_t... I>
Tuple< Args..., T > append_base (Tuple< Args... > t, T a, IndexList< I... >)
 unpacking the elements of the input tuple t and creating a new tuple by adding element a at the end of it. More...
 
template<typename... Args1, typename... Args2, size_t... I1, size_t... I2>
Tuple< Args1..., Args2... > append_base (Tuple< Args1... > t1, Tuple< Args2... > t2, IndexList< I1... >, IndexList< I2... >)
 This is a specialisation of append_base when we want to concatenate tuple t2 at the end of the tuple t1. Here we unpack both tuples, generate the IndexRange for each of them and create an output tuple T that contains both elements of t1 and t2. More...
 
template<typename... Args>
Tuple< Args... > make_tuple (Args...args)
 Creates a tuple object, deducing the target type from the types of arguments. More...
 
template<typename... Args>
static constexpr size_t size (Tuple< Args... > &)
 Provides access to the number of elements in a tuple as a compile-time constant expression. More...
 

Function Documentation

template<typename... Args, typename T >
Tuple<Args..., T> utility::tuple::append ( Tuple< Args... >  t,
a 
)

the deduction function for append_base that automatically generate the IndexRange

append

Template Parameters
Args...the type of the elements inside the tuple t
Tthe type of the new element going to be added at the end of tuple
Parameters
tthe tuple on which we want to append a.
athe new elements going to be added to the tuple
Returns
Tuple<Args..., T>

Definition at line 197 of file TensorSyclTuple.h.

template<typename... Args1, typename... Args2>
Tuple<Args1..., Args2...> utility::tuple::append ( Tuple< Args1... >  t1,
Tuple< Args2... >  t2 
)

deduction function for append_base when we are appending tuple t1 by tuple t2. In this case the IndexRange for both tuple are automatically generated.

append

Template Parameters
Args1...the type of the elements inside the tuple t1
Args2...the type of the elements inside the tuple t2
Parameters
t1is the tuple on which we want to append t2.
t2is the tuple that is going to be added on t1.
Returns
Tuple<Args1..., Args2...>

Definition at line 229 of file TensorSyclTuple.h.

template<typename... Args, typename T , size_t... I>
Tuple<Args..., T> utility::tuple::append_base ( Tuple< Args... >  t,
a,
IndexList< I... >   
)

unpacking the elements of the input tuple t and creating a new tuple by adding element a at the end of it.

append_base

Template Parameters
Args...the type of the elements inside the tuple t
Tthe type of the new element going to be added at the end of tuple
I...is the list of index from [0 to sizeof...(t))
Parameters
tthe tuple on which we want to append a.
athe new elements going to be added to the tuple
Returns
Tuple<Args..., T>

Definition at line 184 of file TensorSyclTuple.h.

template<typename... Args1, typename... Args2, size_t... I1, size_t... I2>
Tuple<Args1..., Args2...> utility::tuple::append_base ( Tuple< Args1... >  t1,
Tuple< Args2... >  t2,
IndexList< I1... >  ,
IndexList< I2... >   
)

This is a specialisation of append_base when we want to concatenate tuple t2 at the end of the tuple t1. Here we unpack both tuples, generate the IndexRange for each of them and create an output tuple T that contains both elements of t1 and t2.

append_base

Template Parameters
Args1...the type of the elements inside the tuple t1
Args2...the type of the elements inside the tuple t2
I1...is the list of index from [0 to sizeof...(t1))
I2...is the list of index from [0 to sizeof...(t2))
Parameters
t1is the tuple on which we want to append t2.
t2is the tuple that is going to be added on t1.
Returns
Tuple<Args1..., Args2...>

Definition at line 215 of file TensorSyclTuple.h.

template<typename... Args>
Tuple<Args...> utility::tuple::make_tuple ( Args...  args)

Creates a tuple object, deducing the target type from the types of arguments.

make_tuple

Template Parameters
Argsthe type of the arguments to construct the tuple from
Parameters
argszero or more arguments to construct the tuple from
Returns
Tuple<Args...>

Definition at line 121 of file TensorSyclTuple.h.

template<typename... Args>
static constexpr size_t utility::tuple::size ( Tuple< Args... > &  )
static

Provides access to the number of elements in a tuple as a compile-time constant expression.

size

Template Parameters
Argsthe type of the arguments to construct the tuple from
Returns
size_t

Definition at line 131 of file TensorSyclTuple.h.



hebiros
Author(s): Xavier Artache , Matthew Tesch
autogenerated on Thu Sep 3 2020 04:11:00