Hydra  4.0.1
A header-only templated C++ framework to perform data analysis on massively parallel platforms.
TypeTraits.h File Reference
#include <hydra/detail/Config.h>
#include <type_traits>
#include <limits>
#include <hydra/detail/external/hydra_thrust/complex.h>
#include <hydra/detail/external/hydra_thrust/detail/type_traits.h>
#include <hydra/detail/external/hydra_thrust/execution_policy.h>
#include <hydra/detail/external/hydra_thrust/iterator/iterator_categories.h>
#include <hydra/detail/external/hydra_thrust/iterator/detail/is_iterator_category.h>
#include <hydra/detail/external/hydra_thrust/iterator/iterator_traits.h>
#include <hydra/detail/external/hydra_thrust/device_reference.h>
#include <hydra/detail/external/hydra_thrust/detail/raw_reference_cast.h>
#include <hydra/detail/external/hydra_thrust/type_traits/void_t.h>
Include dependency graph for TypeTraits.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  hydra::detail::function_traits< T >
 
struct  hydra::detail::function_traits< ReturnType(ClassType::*)(Args &...)>
 
struct  hydra::detail::function_traits< ReturnType(ClassType::*)(Args &...)>::arg< i >
 
struct  hydra::detail::function_traits< ReturnType(ClassType::*)(Args...) const >
 
struct  hydra::detail::function_traits< ReturnType(ClassType::*)(Args...) const >::arg< i >
 
class  hydra::detail::if_then_else< C, T1, T2 >
 
class  hydra::detail::if_then_else< false, T1, T2 >
 
class  hydra::detail::if_then_else< true, T1, T2 >
 
struct  hydra::detail::if_then_else_tt< Condition, T1, T2 >
 
struct  hydra::detail::if_then_else_tt< false, T1, T2 >
 
struct  hydra::detail::if_then_else_tt< true, T1, T2 >
 
struct  hydra::detail::is_device_reference< T >
 
struct  hydra::detail::is_device_reference< hydra::thrust::device_reference< T > >
 
struct  hydra::detail::is_iterator< T, typename >
 
struct  hydra::detail::is_iterator< T, hydra::thrust::void_t< typename std::enable_if< std::is_default_constructible< T >::value, void >::type, typename std::enable_if< std::is_copy_constructible< T >::value, void >::type, typename std::enable_if< std::is_destructible< T >::value, void >::type, decltype(std::declval< T & >()[0]), decltype(std::declval< T & >() -std::declval< T & >()), decltype(++std::declval< T & >()), decltype(*std::declval< T & >()), decltype(std::declval< T & >()==std::declval< T & >()), decltype(std::declval< T & >() !=std::declval< T & >())> >
 
struct  hydra::detail::is_specialization< T, REF >
 
struct  hydra::detail::is_specialization< REF< Args... >, REF >
 
struct  hydra::detail::remove_device_reference< T >
 
struct  hydra::detail::remove_device_reference< hydra::thrust::device_reference< T > >
 
struct  hydra::detail::remove_device_reference< T & >
 
struct  hydra::detail::TypeTraits< T >
 
struct  hydra::detail::TypeTraits< hydra::thrust::complex< T > >
 
struct  std::common_type< hydra::thrust::complex< T >, hydra::thrust::complex< U > >
 
struct  std::common_type< hydra::thrust::complex< U >, T >
 
struct  std::common_type< T, hydra::thrust::complex< U > >
 

Namespaces

 hydra
 Generic policies definition.
 
 hydra::detail
 

Typedefs

template<class... T>
using hydra::detail::common_type_t = typename std::common_type< T... >::type
 

Enumerations

enum  { hydra::detail::kInvalidNumber = -111 }
 

Data Structure Documentation

◆ hydra::detail::function_traits

struct hydra::detail::function_traits

template<typename T>
struct hydra::detail::function_traits< T >

Collaboration diagram for hydra::detail::function_traits< T >:

◆ hydra::detail::function_traits< ReturnType(ClassType::*)(Args &...)>::arg

struct hydra::detail::function_traits< ReturnType(ClassType::*)(Args &...)>::arg

template<typename ClassType, typename ReturnType, typename... Args>
template<size_t i>
struct hydra::detail::function_traits< ReturnType(ClassType::*)(Args &...)>::arg< i >

Collaboration diagram for hydra::detail::function_traits< ReturnType(ClassType::*)(Args &...)>::arg< i >:
Data Fields
type

◆ hydra::detail::function_traits< ReturnType(ClassType::*)(Args...) const >::arg

struct hydra::detail::function_traits< ReturnType(ClassType::*)(Args...) const >::arg

template<typename ClassType, typename ReturnType, typename... Args>
template<size_t i>
struct hydra::detail::function_traits< ReturnType(ClassType::*)(Args...) const >::arg< i >

Collaboration diagram for hydra::detail::function_traits< ReturnType(ClassType::*)(Args...) const >::arg< i >:
Data Fields
type

◆ hydra::detail::if_then_else

class hydra::detail::if_then_else

template<bool C, typename T1, typename T2>
class hydra::detail::if_then_else< C, T1, T2 >

Collaboration diagram for hydra::detail::if_then_else< C, T1, T2 >:

◆ hydra::detail::if_then_else< false, T1, T2 >

class hydra::detail::if_then_else< false, T1, T2 >

template<typename T1, typename T2>
class hydra::detail::if_then_else< false, T1, T2 >

Collaboration diagram for hydra::detail::if_then_else< false, T1, T2 >:
Data Fields
typedef T2 type

◆ hydra::detail::if_then_else< true, T1, T2 >

class hydra::detail::if_then_else< true, T1, T2 >

template<typename T1, typename T2>
class hydra::detail::if_then_else< true, T1, T2 >

Collaboration diagram for hydra::detail::if_then_else< true, T1, T2 >:
Data Fields
typedef T1 type

◆ hydra::detail::if_then_else_tt

struct hydra::detail::if_then_else_tt

template<bool Condition, template< typename ... > class T1, template< typename ... > class T2>
struct hydra::detail::if_then_else_tt< Condition, T1, T2 >

Collaboration diagram for hydra::detail::if_then_else_tt< Condition, T1, T2 >:

◆ hydra::detail::if_then_else_tt< false, T1, T2 >

struct hydra::detail::if_then_else_tt< false, T1, T2 >

template<template< typename ... > class T1, template< typename ... > class T2>
struct hydra::detail::if_then_else_tt< false, T1, T2 >

Collaboration diagram for hydra::detail::if_then_else_tt< false, T1, T2 >:
Data Fields
type

◆ hydra::detail::if_then_else_tt< true, T1, T2 >

struct hydra::detail::if_then_else_tt< true, T1, T2 >

template<template< typename ... > class T1, template< typename ... > class T2>
struct hydra::detail::if_then_else_tt< true, T1, T2 >

Collaboration diagram for hydra::detail::if_then_else_tt< true, T1, T2 >:
Data Fields
type

◆ hydra::detail::remove_device_reference

struct hydra::detail::remove_device_reference

template<typename T>
struct hydra::detail::remove_device_reference< T >

Collaboration diagram for hydra::detail::remove_device_reference< T >:
Data Fields
typedef T type

◆ hydra::detail::remove_device_reference< hydra::thrust::device_reference< T > >

struct hydra::detail::remove_device_reference< hydra::thrust::device_reference< T > >

template<typename T>
struct hydra::detail::remove_device_reference< hydra::thrust::device_reference< T > >

Collaboration diagram for hydra::detail::remove_device_reference< hydra::thrust::device_reference< T > >:
Data Fields
typedef T type

◆ hydra::detail::remove_device_reference< T & >

struct hydra::detail::remove_device_reference< T & >

template<typename T>
struct hydra::detail::remove_device_reference< T & >

Collaboration diagram for hydra::detail::remove_device_reference< T & >:
Data Fields
typedef T type