|
struct | Contains |
|
struct | Contains< List< Head, Tail... >, Value > |
|
struct | DependentFalseType |
| A false_type being dependent on a ignored template parameter. This allows to use static_assert in uninstantiated template specializations without triggering. More...
|
|
class | InheritFromList |
|
class | InheritFromList< TList< TBases... > > |
|
struct | IntegerSequenceValuesInRange |
| Checks if the values in the index sequence are within the given range. More...
|
|
struct | IntegerSequenceValuesInRange< std::integer_sequence< T, Tvals... >, T, Tmin, Tmax > |
| Checks if the values in the index sequence are within the given range. More...
|
|
struct | IntegerSequenceValuesUnique |
| Checks if the values in the index sequence are unique. More...
|
|
struct | IntegerSequenceValuesUnique< std::integer_sequence< T, Tvals... > > |
| Checks if the values in the index sequence are unique. More...
|
|
struct | IntegralValuesInRange |
| Checks if the integral values are within the given range. More...
|
|
struct | IntegralValuesInRange< T, Tmin, Tmax > |
| Checks if the integral values are within the given range. More...
|
|
struct | IntegralValuesInRange< T, Tmin, Tmax, I, Tvals... > |
| Checks if the integral values are within the given range. More...
|
|
struct | IntegralValuesUnique |
| Checks if the integral values are unique. More...
|
|
struct | IsArrayOrVector |
|
struct | IsArrayOrVector< alpaka::Vec< N, T > > |
|
struct | IsArrayOrVector< std::array< T, N > > |
|
struct | IsArrayOrVector< std::vector< T, A > > |
|
struct | IsArrayOrVector< T[N]> |
|
struct | IsList |
|
struct | IsList< TList< TTypes... > > |
|
struct | max |
|
struct | min |
|
struct | ToList |
| Takes an arbitrary number of types (T) and creates a type list of type TListType with the types (T). If T is a single template parameter and it satisfies alpaka::meta::isList, the type of the structure is T (no type change). For example std::tuple can be used as TListType. More...
|
|
struct | ToList< TListType, T > |
|
struct | ToList< TListType, T, Ts... > |
|
|
template<typename TList , template< typename... > class TApplicant> |
using | Apply = typename detail::ApplyImpl< TList, TApplicant >::type |
|
template<template< typename... > class TList, typename... Ts> |
using | CartesianProduct = typename detail::CartesianProductImpl< TList, Ts... >::type |
|
template<typename... T> |
using | Concatenate = typename detail::ConcatenateImpl< T... >::type |
|
template<typename TDstType , typename TIntegerSequence > |
using | ConvertIntegerSequence = typename detail::ConvertIntegerSequence< TDstType, TIntegerSequence >::type |
|
template<typename TList , template< typename... > class TPred> |
using | Filter = typename detail::FilterImpl< TList, TPred >::type |
|
template<typename List > |
using | Front = typename detail::Front< List >::type |
|
template<typename T0 , typename T1 > |
using | HigherMax = std::conditional_t<(sizeof(T0) > sizeof(T1)), T0, std::conditional_t<((sizeof(T0)==sizeof(T1)) &&std::is_unsigned_v< T0 > &&std::is_signed_v< T1 >), T0, T1 > > |
| The type that has the higher max value. More...
|
|
template<typename T0 , typename T1 > |
using | HigherMin = std::conditional_t<(std::is_unsigned_v< T0 >==std::is_unsigned_v< T1 >), std::conditional_t< std::is_unsigned_v< T0 >, std::conditional_t<(sizeof(T0)< sizeof(T1)), T1, T0 >, std::conditional_t<(sizeof(T0)< sizeof(T1)), T0, T1 > >, std::conditional_t< std::is_unsigned_v< T0 >, T0, T1 > > |
| The type that has the higher min value. If both types have the same min value, the type with the wider range is chosen. More...
|
|
template<typename TSuperset , typename TSubset > |
using | IsIntegralSuperset = std::integral_constant< bool, std::is_integral_v< TSuperset > &&std::is_integral_v< TSubset > &&(((std::is_unsigned_v< TSuperset >==std::is_unsigned_v< TSubset >) &&(sizeof(TSuperset) >=sizeof(TSubset)))||((std::is_unsigned_v< TSuperset > !=std::is_unsigned_v< TSubset >) &&(sizeof(TSuperset) > sizeof(TSubset))))> |
| The trait is true if all values of TSubset are contained in TSuperset. More...
|
|
template<typename... Ts> |
using | IsParameterPackSet = detail::IsParameterPackSetImpl< Ts... > |
| Trait that tells if the parameter pack contains only unique (no equal) types. More...
|
|
template<typename TList > |
using | IsSet = detail::IsSetImpl< TList > |
| Trait that tells if the template contains only unique (no equal) types. More...
|
|
template<typename TBase , typename TDerived > |
using | IsStrictBase = std::integral_constant< bool, std::is_base_of_v< TBase, TDerived > &&!std::is_same_v< TBase, std::decay_t< TDerived > >> |
| The trait is true if TDerived is derived from TBase but is not TBase itself. More...
|
|
template<typename T0 , typename T1 > |
using | LowerMax = std::conditional_t<(sizeof(T0)< sizeof(T1)), T0, std::conditional_t<((sizeof(T0)==sizeof(T1)) &&std::is_signed_v< T0 > &&std::is_unsigned_v< T1 >), T0, T1 > > |
| The type that has the lower max value. More...
|
|
template<typename T0 , typename T1 > |
using | LowerMin = std::conditional_t<(std::is_unsigned_v< T0 >==std::is_unsigned_v< T1 >), std::conditional_t<(sizeof(T0) > sizeof(T1)), T0, T1 >, std::conditional_t< std::is_signed_v< T0 >, T0, T1 > > |
| The type that has the lower min value. If both types have the same min value, the type with the wider range is chosen. More...
|
|
template<typename T , T Tbegin, T Tsize> |
using | MakeIntegerSequenceOffset = typename detail::MakeIntegerSequenceHelper<(Tsize< 0),(Tsize==0), T, Tbegin, std::integral_constant< T, Tbegin+Tsize >, std::integer_sequence< T > >::type |
|
template<typename T > |
using | NonZero = typename detail::NonZeroImpl< T > |
|
template<typename... T> |
using | ToTuple = typename ToList< std::tuple, T... >::type |
| If T is a single argument and a type list (fullfil alpaka::meta::isList), the return type is T. Otherwise, std::tuple is returned with T types as template parameters. More...
|
|
template<typename Ts , template< typename... > class TOp> |
using | Transform = typename detail::TransformImpl< Ts, TOp >::type |
|
template<typename TList > |
using | Unique = typename detail::UniqueImpl< TList >::type |
| Trait that returns a list with only unique (no equal) types (a set). Duplicates will be filtered out. More...
|
|
|
template<typename TFnObj , typename T > |
ALPAKA_NO_HOST_ACC_WARNING constexpr ALPAKA_FN_HOST_ACC auto | foldr (TFnObj const &, T const &t) -> T |
|
template<typename TFnObj , typename T0 , typename T1 , typename... Ts> |
ALPAKA_NO_HOST_ACC_WARNING constexpr ALPAKA_FN_HOST_ACC auto | foldr (TFnObj const &f, T0 const &t0, T1 const &t1, Ts const &... ts) |
|
template<typename TList , typename TFnObj , typename... TArgs> |
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto | forEachType (TFnObj &&f, TArgs &&... args) -> void |
| Equivalent to boost::mpl::for_each but does not require the types of the sequence to be default constructible. This function does not create instances of the types instead it passes the types as template parameter. More...
|
|
template<typename TExtentVec , typename TFnObj , std::size_t... Tdims> |
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto | ndLoop ([[maybe_unused]] std::index_sequence< Tdims... > indexSequence, TExtentVec const &extent, TFnObj const &f) -> void |
| Loops over an n-dimensional iteration index variable calling f(idx, args...) for each iteration. The loops are nested in the order given by the index_sequence with the first element being the outermost and the last index the innermost loop. More...
|
|
template<typename TExtentVec , typename TFnObj > |
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto | ndLoopIncIdx (TExtentVec const &extent, TFnObj const &f) -> void |
| Loops over an n-dimensional iteration index variable calling f(idx, args...) for each iteration. The loops are nested from index zero outmost to index (dim-1) innermost. More...
|
|