Hydra: Tuple.h File Reference (original) (raw)

#include <hydra/detail/Config.h>
#include <hydra/detail/external/hydra_thrust/tuple.h>
#include <hydra/detail/external/hydra_thrust/detail/tuple/tuple.h>
#include <hydra/detail/utility/Generic.h>
#include <utility>

Go to the source code of this file.

Namespaces
Typedefs
template<typename T1 , typename T2 >
using hydra::pair = hydra::thrust::pair< T1, T2 >
pair template is an alias to the hydra::thrust::pair structure. More...
template<typename... T>
using hydra::tuple = hydra::thrust::tuple< T... >
tuple template is an alias to the variadic version of hydra::thrust::tuple and that can be instantiated with a indefinite number of arguments. More...
template<int N, class T >
using hydra::tuple_element = hydra::thrust::tuple_element< N, T >
The get function returns a const reference to a tuple element of interest. More...
template
using hydra::tuple_size = hydra::thrust::tuple_size< T >
This metafunction returns the number of elements of a tuple type of interest. More...
Functions
template<class ... T>
__hydra_host__ __hydra_device__ auto hydra::forward_as_tuple (T &&...t) -> decltype(hydra::thrust::forward_as_tuple(std::forward< T >(t)...))
Constructs a tuple of references to the arguments in args suitable for forwarding as an argument to a function. More...
template<int I, int N, typename T >
__hydra_host__ __hydra_device__ T hydra::get (T(&array)[N])
template<int I, typename T >
__hydra_host__ __hydra_device__ T hydra::get (T *array)
template<typename Type , typename ... T>
__hydra_host__ __hydra_device__ Type & hydra::get (hydra::thrust::tuple< T... > const &t)
The get function returns a reference to a tuple element of interest. More...
template<int N, typename ... T>
__hydra_host__ __hydra_device__ const hydra::thrust::tuple_element< N, hydra::thrust::tuple< T... > >::type & hydra::get (hydra::thrust::tuple< T... > const &t)
template<typename Type , typename ... T>
__hydra_host__ __hydra_device__ Type & hydra::get (hydra::thrust::tuple< T... > &t)
template<int N, typename ... T>
__hydra_host__ __hydra_device__ hydra::thrust::tuple_element< N, hydra::thrust::tuple< T... > >::type & hydra::get (hydra::thrust::tuple< T... > &t)
template<typename Type , typename ... T>
__hydra_host__ __hydra_device__ Type && hydra::get (hydra::thrust::tuple< T... > &&t)
template<int N, typename ... T>
__hydra_host__ __hydra_device__ hydra::thrust::tuple_element< N, hydra::thrust::tuple< T... > >::type && hydra::get (hydra::thrust::tuple< T... > &&t)
template<int N, typename T1 , typename T2 >
__hydra_host__ __hydra_device__ hydra::thrust::tuple_element< N, hydra::thrust::pair< T1, T2 > >::type & hydra::get (hydra::thrust::pair< T1, T2 > &t)
template<int N, typename T1 , typename T2 >
__hydra_host__ __hydra_device__ const hydra::thrust::tuple_element< N, hydra::thrust::pair< T1, T2 > >::type & hydra::get (hydra::thrust::pair< T1, T2 > const &t)
template<int N, typename T1 , typename T2 >
__hydra_host__ __hydra_device__ hydra::thrust::tuple_element< N, hydra::thrust::pair< T1, T2 > >::type && hydra::get (hydra::thrust::pair< T1, T2 > &&t)
template<class T1 , class T2 >
__hydra_host__ __hydra_device__ auto hydra::make_pair (T1 &&t1, T2 &&t2) -> decltype(hydra::thrust::make_pair(std::forward< T1 >(t1), std::forward< T2 >(t2)))
This version of make_pair creates a new pair object from a list of objects. More...
template<class ... T>
__hydra_host__ __hydra_device__ auto hydra::make_tuple (T &&... t) -> decltype(hydra::thrust::make_tuple(std::forward< T >(t)...))
This version of make_tuple creates a new tuple object from a list of objects. More...
template<class ... T>
__hydra_host__ __hydra_device__ auto hydra::tie (T &...t) -> decltype(hydra::thrust::tie(t...))
This version of tie creates a new tuple whose elements are references which refers to this function's arguments. More...