Type traits for SIMD related types and functions.
Using EVE types and functions may require informations about some properties of the processed types that are accessible through the following traits.
Convenience header:
Modules | |
Structured Types Management | |
Traits and functions to handle user defined types in SIMD registers. | |
Classes | |
struct | eve::abi< Type, Lanes > |
Find proper ABI for Type/Lanes pair. More... | |
struct | eve::as< T > |
Lightweight type-wrapper. More... | |
struct | eve::cardinal< Type > |
Computes the cardinal of a given type. More... | |
struct | eve::common_compatible< Ts > |
Computes the type compatible with a list of values. More... | |
struct | eve::common_type< Ts > |
Computes a type that can represent all values in a list of types. More... | |
struct | eve::element_type< T > |
Extracts the scalar part of a type. More... | |
struct | eve::underlying_type< Ts > |
Computes the most scalar type associated with a type. More... | |
Typedefs | |
template<typename T > | |
using | eve::iterator_cardinal_t = decltype(detail::iterator_cardinal_impl< T >()) |
A meta-function that returns a cardinal for a relaxed iterator/range. If T defines a nested static function iterator_cardinal() (which should return eve::fixed) More... | |
template<typename T > | |
using | eve::value_type_t = typename decltype(detail::value_type_impl< T >())::type |
A meta function for getting an associated value_type for a relaxed iterator/range. More... | |
template<typename T > | |
using | eve::wide_value_type_t = as_wide_t< value_type_t< T >, iterator_cardinal_t< T > > |
Variables | |
template<typename T > | |
constexpr std::size_t | eve::max_scalar_size_v |
A meta function for getting a maximum size of scalar. More... | |