Hydra  4.0.1
A header-only templated C++ framework to perform data analysis on massively parallel platforms.
hydra::detail::FunctionArgument< Derived, Type > Struct Template Reference

#include <ArgumentTraits.h>

Collaboration diagram for hydra::detail::FunctionArgument< Derived, Type >:

Public Types

typedef void function_argument_type
 
typedef Derived name_type
 
typedef Type value_type
 

Public Member Functions

 FunctionArgument ()=default
 
__hydra_host__ __hydra_device__ FunctionArgument (value_type x)
 
__hydra_host__ __hydra_device__ FunctionArgument (hydra::thrust::device_reference< value_type > x)
 
__hydra_host__ __hydra_device__ FunctionArgument (FunctionArgument< name_type, value_type >const &other)
 
__hydra_host__ __hydra_device__ FunctionArgument (hydra::thrust::device_reference< name_type >const &other)
 
template<typename Derived2 >
__hydra_host__ __hydra_device__ FunctionArgument (FunctionArgument< Derived2, value_type >const &other)
 
__hydra_host__ __hydra_device__ operator value_type () const
 
__hydra_host__ __hydra_device__ operator value_type & ()
 
__hydra_host__ __hydra_device__ FunctionArgument< Derived, Type > & operator%= (Type other)
 
template<typename Derived2 , typename Type2 >
__hydra_host__ __hydra_device__ std::enable_if< std::is_convertible< Type, Type2 >::value, FunctionArgument< Derived, Type > & >::type operator%= (FunctionArgument< Derived2, Type2 > const &other)
 
__hydra_host__ __hydra_device__ value_type operator() (void) const
 
__hydra_host__ __hydra_device__ FunctionArgument< Derived, Type > & operator*= (Type other)
 
template<typename Derived2 , typename Type2 >
__hydra_host__ __hydra_device__ std::enable_if< std::is_convertible< Type, Type2 >::value, FunctionArgument< Derived, Type > & >::type operator*= (FunctionArgument< Derived2, Type2 > const &other)
 
__hydra_host__ __hydra_device__ FunctionArgument< Derived, Type > & operator+= (Type other)
 
template<typename Derived2 , typename Type2 >
__hydra_host__ __hydra_device__ std::enable_if< std::is_convertible< Type, Type2 >::value, FunctionArgument< Derived, Type > & >::type operator+= (FunctionArgument< Derived2, Type2 > const &other)
 
__hydra_host__ __hydra_device__ FunctionArgument< Derived, Type > & operator-= (Type other)
 
template<typename Derived2 , typename Type2 >
__hydra_host__ __hydra_device__ std::enable_if< std::is_convertible< Type, Type2 >::value, FunctionArgument< Derived, Type > & >::type operator-= (FunctionArgument< Derived2, Type2 > const &other)
 
__hydra_host__ __hydra_device__ FunctionArgument< Derived, Type > & operator/= (Type other)
 
template<typename Derived2 , typename Type2 >
__hydra_host__ __hydra_device__ std::enable_if< std::is_convertible< Type, Type2 >::value, FunctionArgument< Derived, Type > & >::type operator/= (FunctionArgument< Derived2, Type2 > const &other)
 
__hydra_host__ __hydra_device__ FunctionArgument< name_type, value_type > & operator= (FunctionArgument< name_type, value_type >const &other)
 
template<typename T >
__hydra_host__ __hydra_device__ std::enable_if< std::is_convertible< T, value_type >::value &&(!detail::is_function_argument< T >::value), FunctionArgument< name_type, value_type > & >::type operator= (T other)
 
template<typename T >
__hydra_host__ __hydra_device__ std::enable_if< std::is_convertible< T, value_type >::value &&(!detail::is_function_argument< T >::value), FunctionArgument< name_type, value_type > & >::type operator= (hydra::thrust::device_reference< T > const &other)
 
template<typename Derived2 >
__hydra_host__ __hydra_device__ FunctionArgument< name_type, value_type > & operator= (FunctionArgument< Derived2, value_type >const &other)
 
__hydra_host__ __hydra_device__ value_type Value (void) const
 

Detailed Description

template<typename Derived, typename Type>
struct hydra::detail::FunctionArgument< Derived, Type >

Member Typedef Documentation

◆ function_argument_type

template<typename Derived , typename Type >
typedef void hydra::detail::FunctionArgument< Derived, Type >::function_argument_type

◆ name_type

template<typename Derived , typename Type >
typedef Derived hydra::detail::FunctionArgument< Derived, Type >::name_type

◆ value_type

template<typename Derived , typename Type >
typedef Type hydra::detail::FunctionArgument< Derived, Type >::value_type

Constructor & Destructor Documentation

◆ FunctionArgument() [1/6]

template<typename Derived , typename Type >
hydra::detail::FunctionArgument< Derived, Type >::FunctionArgument ( )
default

◆ FunctionArgument() [2/6]

template<typename Derived , typename Type >
__hydra_host__ __hydra_device__ hydra::detail::FunctionArgument< Derived, Type >::FunctionArgument ( value_type  x)
inlineexplicit

◆ FunctionArgument() [3/6]

template<typename Derived , typename Type >
__hydra_host__ __hydra_device__ hydra::detail::FunctionArgument< Derived, Type >::FunctionArgument ( hydra::thrust::device_reference< value_type x)
inlineexplicit

◆ FunctionArgument() [4/6]

template<typename Derived , typename Type >
__hydra_host__ __hydra_device__ hydra::detail::FunctionArgument< Derived, Type >::FunctionArgument ( FunctionArgument< name_type, value_type >const &  other)
inlineexplicit

◆ FunctionArgument() [5/6]

template<typename Derived , typename Type >
__hydra_host__ __hydra_device__ hydra::detail::FunctionArgument< Derived, Type >::FunctionArgument ( hydra::thrust::device_reference< name_type >const &  other)
inlineexplicit

◆ FunctionArgument() [6/6]

template<typename Derived , typename Type >
template<typename Derived2 >
__hydra_host__ __hydra_device__ hydra::detail::FunctionArgument< Derived, Type >::FunctionArgument ( FunctionArgument< Derived2, value_type >const &  other)
inline

Member Function Documentation

◆ operator value_type()

template<typename Derived , typename Type >
__hydra_host__ __hydra_device__ hydra::detail::FunctionArgument< Derived, Type >::operator value_type ( ) const
inline

◆ operator value_type &()

template<typename Derived , typename Type >
__hydra_host__ __hydra_device__ hydra::detail::FunctionArgument< Derived, Type >::operator value_type & ( )
inline

◆ operator%=() [1/2]

template<typename Derived , typename Type >
__hydra_host__ __hydra_device__ FunctionArgument<Derived, Type>& hydra::detail::FunctionArgument< Derived, Type >::operator%= ( Type  other)
inline

◆ operator%=() [2/2]

template<typename Derived , typename Type >
template<typename Derived2 , typename Type2 >
__hydra_host__ __hydra_device__ std::enable_if<std::is_convertible<Type, Type2>::value, FunctionArgument<Derived, Type>&>::type hydra::detail::FunctionArgument< Derived, Type >::operator%= ( FunctionArgument< Derived2, Type2 > const &  other)
inline

◆ operator()()

template<typename Derived , typename Type >
__hydra_host__ __hydra_device__ value_type hydra::detail::FunctionArgument< Derived, Type >::operator() ( void  ) const
inline

◆ operator*=() [1/2]

template<typename Derived , typename Type >
__hydra_host__ __hydra_device__ FunctionArgument<Derived, Type>& hydra::detail::FunctionArgument< Derived, Type >::operator*= ( Type  other)
inline

◆ operator*=() [2/2]

template<typename Derived , typename Type >
template<typename Derived2 , typename Type2 >
__hydra_host__ __hydra_device__ std::enable_if<std::is_convertible<Type, Type2>::value, FunctionArgument<Derived, Type>&>::type hydra::detail::FunctionArgument< Derived, Type >::operator*= ( FunctionArgument< Derived2, Type2 > const &  other)
inline

◆ operator+=() [1/2]

template<typename Derived , typename Type >
__hydra_host__ __hydra_device__ FunctionArgument<Derived, Type>& hydra::detail::FunctionArgument< Derived, Type >::operator+= ( Type  other)
inline

◆ operator+=() [2/2]

template<typename Derived , typename Type >
template<typename Derived2 , typename Type2 >
__hydra_host__ __hydra_device__ std::enable_if<std::is_convertible<Type, Type2>::value, FunctionArgument<Derived, Type>&>::type hydra::detail::FunctionArgument< Derived, Type >::operator+= ( FunctionArgument< Derived2, Type2 > const &  other)
inline

◆ operator-=() [1/2]

template<typename Derived , typename Type >
__hydra_host__ __hydra_device__ FunctionArgument<Derived, Type>& hydra::detail::FunctionArgument< Derived, Type >::operator-= ( Type  other)
inline

◆ operator-=() [2/2]

template<typename Derived , typename Type >
template<typename Derived2 , typename Type2 >
__hydra_host__ __hydra_device__ std::enable_if<std::is_convertible<Type, Type2>::value, FunctionArgument<Derived, Type>&>::type hydra::detail::FunctionArgument< Derived, Type >::operator-= ( FunctionArgument< Derived2, Type2 > const &  other)
inline

◆ operator/=() [1/2]

template<typename Derived , typename Type >
__hydra_host__ __hydra_device__ FunctionArgument<Derived, Type>& hydra::detail::FunctionArgument< Derived, Type >::operator/= ( Type  other)
inline

◆ operator/=() [2/2]

template<typename Derived , typename Type >
template<typename Derived2 , typename Type2 >
__hydra_host__ __hydra_device__ std::enable_if<std::is_convertible<Type, Type2>::value, FunctionArgument<Derived, Type>&>::type hydra::detail::FunctionArgument< Derived, Type >::operator/= ( FunctionArgument< Derived2, Type2 > const &  other)
inline

◆ operator=() [1/4]

template<typename Derived , typename Type >
__hydra_host__ __hydra_device__ FunctionArgument<name_type, value_type>& hydra::detail::FunctionArgument< Derived, Type >::operator= ( FunctionArgument< name_type, value_type >const &  other)
inline

◆ operator=() [2/4]

template<typename Derived , typename Type >
template<typename T >
__hydra_host__ __hydra_device__ std::enable_if< std::is_convertible<T, value_type>::value && (!detail::is_function_argument<T>::value), FunctionArgument<name_type, value_type>&>::type hydra::detail::FunctionArgument< Derived, Type >::operator= ( other)
inline

◆ operator=() [3/4]

template<typename Derived , typename Type >
template<typename T >
__hydra_host__ __hydra_device__ std::enable_if< std::is_convertible<T, value_type>::value && (!detail::is_function_argument<T>::value), FunctionArgument<name_type, value_type>&>::type hydra::detail::FunctionArgument< Derived, Type >::operator= ( hydra::thrust::device_reference< T > const &  other)
inline

◆ operator=() [4/4]

template<typename Derived , typename Type >
template<typename Derived2 >
__hydra_host__ __hydra_device__ FunctionArgument<name_type, value_type>& hydra::detail::FunctionArgument< Derived, Type >::operator= ( FunctionArgument< Derived2, value_type >const &  other)
inline

◆ Value()

template<typename Derived , typename Type >
__hydra_host__ __hydra_device__ value_type hydra::detail::FunctionArgument< Derived, Type >::Value ( void  ) const
inline

The documentation for this struct was generated from the following files: