Embedded Template Library  1.0
type_traits

A set of type traits definitions. Derived from either the standard or alternate definitions, dependant on whether or not ETL_NO_STL is defined. More...

Classes

struct  etl::integral_constant< T, VALUE >
 integral_constant More...
 
struct  etl::remove_reference< T >
 negation More...
 
struct  etl::remove_pointer< T >
 remove_pointer More...
 
struct  etl::add_pointer< T >
 add_pointer More...
 
struct  etl::is_const< T >
 is_const More...
 
struct  etl::remove_const< T >
 remove_const More...
 
struct  etl::add_const< T >
 add_const More...
 
struct  etl::is_volatile< T >
 is_volatile More...
 
struct  etl::remove_volatile< T >
 remove_volatile More...
 
struct  etl::add_volatile< T >
 add_volatile More...
 
struct  etl::remove_cv< T >
 remove_cv More...
 
struct  etl::add_cv< T >
 add_cv More...
 
struct  etl::is_integral< T >
 is_integral More...
 
struct  etl::is_signed< T >
 is_signed More...
 
struct  etl::is_unsigned< T >
 is_unsigned More...
 
struct  etl::is_floating_point< T >
 is_floating_point More...
 
struct  etl::is_same< T1, T2 >
 is_same More...
 
struct  etl::is_void< T >
 is_void More...
 
struct  etl::is_arithmetic< T >
 is_arithmetic More...
 
struct  etl::is_fundamental< T >
 is_fundamental More...
 
struct  etl::is_compound< T >
 is_compound More...
 
struct  etl::is_array< T >
 is_array More...
 
struct  etl::is_pointer< T >
 is_pointer More...
 
struct  etl::is_reference< T >
 is_reference More...
 
struct  etl::is_lvalue_reference< T >
 is_lvalue_reference More...
 
struct  etl::is_pod< T >
 is_rvalue_reference More...
 
struct  etl::is_trivially_constructible< T >
 is_trivially_constructible More...
 
struct  etl::is_trivially_copy_constructible< T >
 is_trivially_copy_constructible More...
 
struct  etl::is_trivially_destructible< T >
 is_trivially_destructible More...
 
struct  etl::is_trivially_copy_assignable< T >
 is_trivially_copy_assignable More...
 
struct  etl::is_trivially_copyable< T >
 is_trivially_copyable More...
 
struct  etl::conditional< B, T, F >
 conditional More...
 
struct  etl::make_signed< T >
 make_signed More...
 
struct  etl::make_unsigned< T >
 make_unsigned More...
 
struct  etl::enable_if< B, T >
 enable_if More...
 
struct  etl::extent< T, MAXN >
 extent More...
 
struct  etl::remove_extent< T >
 remove_extent More...
 
struct  etl::remove_all_extents< T >
 remove_all_extents More...
 
struct  etl::rank< T >
 rank More...
 
struct  etl::decay< T >
 decay More...
 
struct  etl::is_base_of< TBase, TDerived >
 is_base_of More...
 
struct  etl::alignment_of< T >
 add_rvalue_reference More...
 
struct  etl::alignment_of< void >
 

Typedefs

typedef integral_constant< bool, false > etl::false_type
 integral_constant specialisations
 

Detailed Description

A set of type traits definitions. Derived from either the standard or alternate definitions, dependant on whether or not ETL_NO_STL is defined.

A set of type traits definitions. Derived from either the standard or alternate definitions, dependant on whether or not ETL_NO_STL is defined.


Class Documentation

◆ etl::integral_constant

struct etl::integral_constant

template<typename T, const T VALUE>
struct etl::integral_constant< T, VALUE >

integral_constant

Public Types

typedef T value_type
 
typedef integral_constant< T, VALUE > type
 

Public Member Functions

 operator value_type () const
 

Static Public Attributes

static const T value = VALUE
 

◆ etl::remove_reference

struct etl::remove_reference

template<typename T>
struct etl::remove_reference< T >

negation

remove_reference

Public Types

typedef T type
 

◆ etl::remove_pointer

struct etl::remove_pointer

template<typename T>
struct etl::remove_pointer< T >

remove_pointer

Public Types

typedef T type
 

◆ etl::add_pointer

struct etl::add_pointer

template<typename T>
struct etl::add_pointer< T >

add_pointer

Public Types

typedef remove_reference< T >::type * type
 

◆ etl::is_const

struct etl::is_const

template<typename T>
struct etl::is_const< T >

is_const

Additional Inherited Members

- Public Types inherited from etl::integral_constant< T, VALUE >
typedef T value_type
 
typedef integral_constant< T, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< T, VALUE >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< T, VALUE >
static const T value = VALUE
 

◆ etl::remove_const

struct etl::remove_const

template<typename T>
struct etl::remove_const< T >

remove_const

Public Types

typedef T type
 

◆ etl::add_const

struct etl::add_const

template<typename T>
struct etl::add_const< T >

add_const

Public Types

typedef const T type
 

◆ etl::is_volatile

struct etl::is_volatile

template<typename T>
struct etl::is_volatile< T >

is_volatile

Additional Inherited Members

- Public Types inherited from etl::integral_constant< T, VALUE >
typedef T value_type
 
typedef integral_constant< T, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< T, VALUE >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< T, VALUE >
static const T value = VALUE
 

◆ etl::remove_volatile

struct etl::remove_volatile

template<typename T>
struct etl::remove_volatile< T >

remove_volatile

Public Types

typedef T type
 

◆ etl::add_volatile

struct etl::add_volatile

template<typename T>
struct etl::add_volatile< T >

add_volatile

Public Types

typedef volatile T type
 

◆ etl::remove_cv

struct etl::remove_cv

template<typename T>
struct etl::remove_cv< T >

remove_cv

Public Types

typedef remove_volatile< typename remove_const< T >::type >::type type
 

◆ etl::add_cv

struct etl::add_cv

template<typename T>
struct etl::add_cv< T >

add_cv

Public Types

typedef add_volatile< typename add_const< T >::type >::type type
 

◆ etl::is_integral

struct etl::is_integral

template<typename T>
struct etl::is_integral< T >

is_integral

Additional Inherited Members

- Public Types inherited from etl::integral_constant< T, VALUE >
typedef T value_type
 
typedef integral_constant< T, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< T, VALUE >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< T, VALUE >
static const T value = VALUE
 

◆ etl::is_signed

struct etl::is_signed

template<typename T>
struct etl::is_signed< T >

is_signed

Additional Inherited Members

- Public Types inherited from etl::integral_constant< T, VALUE >
typedef T value_type
 
typedef integral_constant< T, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< T, VALUE >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< T, VALUE >
static const T value = VALUE
 

◆ etl::is_unsigned

struct etl::is_unsigned

template<typename T>
struct etl::is_unsigned< T >

is_unsigned

Additional Inherited Members

- Public Types inherited from etl::integral_constant< T, VALUE >
typedef T value_type
 
typedef integral_constant< T, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< T, VALUE >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< T, VALUE >
static const T value = VALUE
 

◆ etl::is_floating_point

struct etl::is_floating_point

template<typename T>
struct etl::is_floating_point< T >

is_floating_point

Additional Inherited Members

- Public Types inherited from etl::integral_constant< T, VALUE >
typedef T value_type
 
typedef integral_constant< T, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< T, VALUE >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< T, VALUE >
static const T value = VALUE
 

◆ etl::is_same

struct etl::is_same

template<typename T1, typename T2>
struct etl::is_same< T1, T2 >

is_same

Additional Inherited Members

- Public Types inherited from etl::integral_constant< T, VALUE >
typedef T value_type
 
typedef integral_constant< T, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< T, VALUE >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< T, VALUE >
static const T value = VALUE
 

◆ etl::is_void

struct etl::is_void

template<typename T>
struct etl::is_void< T >

is_void

Additional Inherited Members

- Public Types inherited from etl::integral_constant< T, VALUE >
typedef T value_type
 
typedef integral_constant< T, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< T, VALUE >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< T, VALUE >
static const T value = VALUE
 

◆ etl::is_arithmetic

struct etl::is_arithmetic

template<typename T>
struct etl::is_arithmetic< T >

is_arithmetic

Additional Inherited Members

- Public Types inherited from etl::integral_constant< bool, is_integral< T >::value||is_floating_point< T >::value >
typedef bool value_type
 
typedef integral_constant< bool, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< bool, is_integral< T >::value||is_floating_point< T >::value >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< bool, is_integral< T >::value||is_floating_point< T >::value >
static const bool value
 

◆ etl::is_fundamental

struct etl::is_fundamental

template<typename T>
struct etl::is_fundamental< T >

is_fundamental

Additional Inherited Members

- Public Types inherited from etl::integral_constant< bool, is_arithmetic< T >::value||is_void< T >::value >
typedef bool value_type
 
typedef integral_constant< bool, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< bool, is_arithmetic< T >::value||is_void< T >::value >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< bool, is_arithmetic< T >::value||is_void< T >::value >
static const bool value
 

◆ etl::is_compound

struct etl::is_compound

template<typename T>
struct etl::is_compound< T >

is_compound

Additional Inherited Members

- Public Types inherited from etl::integral_constant< bool, !is_fundamental< T >::value >
typedef bool value_type
 
typedef integral_constant< bool, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< bool, !is_fundamental< T >::value >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< bool, !is_fundamental< T >::value >
static const bool value
 

◆ etl::is_array

struct etl::is_array

template<typename T>
struct etl::is_array< T >

is_array

Additional Inherited Members

- Public Types inherited from etl::integral_constant< T, VALUE >
typedef T value_type
 
typedef integral_constant< T, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< T, VALUE >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< T, VALUE >
static const T value = VALUE
 

◆ etl::is_pointer

struct etl::is_pointer

template<typename T>
struct etl::is_pointer< T >

is_pointer

Additional Inherited Members

- Public Types inherited from etl::integral_constant< T, VALUE >
typedef T value_type
 
typedef integral_constant< T, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< T, VALUE >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< T, VALUE >
static const T value = VALUE
 

◆ etl::is_reference

struct etl::is_reference

template<typename T>
struct etl::is_reference< T >

is_reference

Additional Inherited Members

- Public Types inherited from etl::integral_constant< T, VALUE >
typedef T value_type
 
typedef integral_constant< T, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< T, VALUE >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< T, VALUE >
static const T value = VALUE
 

◆ etl::is_lvalue_reference

struct etl::is_lvalue_reference

template<typename T>
struct etl::is_lvalue_reference< T >

is_lvalue_reference

Additional Inherited Members

- Public Types inherited from etl::integral_constant< T, VALUE >
typedef T value_type
 
typedef integral_constant< T, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< T, VALUE >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< T, VALUE >
static const T value = VALUE
 

◆ etl::is_pod

struct etl::is_pod

template<typename T>
struct etl::is_pod< T >

is_rvalue_reference

is_pod

is_pod Only fundamental and pointers types are recognised.

Additional Inherited Members

- Public Types inherited from etl::integral_constant< bool, etl::is_fundamental< T >::value||etl::is_pointer< T >::value >
typedef bool value_type
 
typedef integral_constant< bool, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< bool, etl::is_fundamental< T >::value||etl::is_pointer< T >::value >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< bool, etl::is_fundamental< T >::value||etl::is_pointer< T >::value >
static const bool value
 

◆ etl::is_trivially_constructible

struct etl::is_trivially_constructible

template<typename T>
struct etl::is_trivially_constructible< T >

is_trivially_constructible

is_trivially_constructible Only POD types are recognised.

Additional Inherited Members

- Public Types inherited from etl::integral_constant< bool, etl::is_fundamental< T >::value||etl::is_pointer< T >::value >
typedef bool value_type
 
typedef integral_constant< bool, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< bool, etl::is_fundamental< T >::value||etl::is_pointer< T >::value >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< bool, etl::is_fundamental< T >::value||etl::is_pointer< T >::value >
static const bool value
 

◆ etl::is_trivially_copy_constructible

struct etl::is_trivially_copy_constructible

template<typename T>
struct etl::is_trivially_copy_constructible< T >

is_trivially_copy_constructible

is_trivially_copy_constructible Only POD types are recognised.

Additional Inherited Members

- Public Types inherited from etl::integral_constant< bool, etl::is_fundamental< T >::value||etl::is_pointer< T >::value >
typedef bool value_type
 
typedef integral_constant< bool, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< bool, etl::is_fundamental< T >::value||etl::is_pointer< T >::value >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< bool, etl::is_fundamental< T >::value||etl::is_pointer< T >::value >
static const bool value
 

◆ etl::is_trivially_destructible

struct etl::is_trivially_destructible

template<typename T>
struct etl::is_trivially_destructible< T >

is_trivially_destructible

is_trivially_destructible Only POD types are recognised.

Additional Inherited Members

- Public Types inherited from etl::integral_constant< bool, etl::is_fundamental< T >::value||etl::is_pointer< T >::value >
typedef bool value_type
 
typedef integral_constant< bool, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< bool, etl::is_fundamental< T >::value||etl::is_pointer< T >::value >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< bool, etl::is_fundamental< T >::value||etl::is_pointer< T >::value >
static const bool value
 

◆ etl::is_trivially_copy_assignable

struct etl::is_trivially_copy_assignable

template<typename T>
struct etl::is_trivially_copy_assignable< T >

is_trivially_copy_assignable

is_trivially_copy_assignable Only POD types are recognised.

Additional Inherited Members

- Public Types inherited from etl::integral_constant< bool, etl::is_fundamental< T >::value||etl::is_pointer< T >::value >
typedef bool value_type
 
typedef integral_constant< bool, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< bool, etl::is_fundamental< T >::value||etl::is_pointer< T >::value >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< bool, etl::is_fundamental< T >::value||etl::is_pointer< T >::value >
static const bool value
 

◆ etl::is_trivially_copyable

struct etl::is_trivially_copyable

template<typename T>
struct etl::is_trivially_copyable< T >

is_trivially_copyable

is_trivially_copyable Only POD types are recognised.

Additional Inherited Members

- Public Types inherited from etl::integral_constant< bool, etl::is_fundamental< T >::value||etl::is_pointer< T >::value >
typedef bool value_type
 
typedef integral_constant< bool, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< bool, etl::is_fundamental< T >::value||etl::is_pointer< T >::value >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< bool, etl::is_fundamental< T >::value||etl::is_pointer< T >::value >
static const bool value
 

◆ etl::conditional

struct etl::conditional

template<bool B, typename T, typename F>
struct etl::conditional< B, T, F >

conditional

Public Types

typedef T type
 
typedef T type
 

◆ etl::make_signed

struct etl::make_signed

template<typename T>
struct etl::make_signed< T >

make_signed

Public Types

typedef T type
 

◆ etl::make_unsigned

struct etl::make_unsigned

template<typename T>
struct etl::make_unsigned< T >

make_unsigned

Public Types

typedef T type
 

◆ etl::enable_if

struct etl::enable_if

template<bool B, typename T = void>
struct etl::enable_if< B, T >

enable_if

◆ etl::extent

struct etl::extent

template<typename T, size_t MAXN = 0U>
struct etl::extent< T, MAXN >

extent

Additional Inherited Members

- Public Types inherited from etl::integral_constant< size_t, 0U >
typedef size_t value_type
 
typedef integral_constant< size_t, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< size_t, 0U >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< size_t, 0U >
static const size_t value
 

◆ etl::remove_extent

struct etl::remove_extent

template<typename T>
struct etl::remove_extent< T >

remove_extent

Public Types

typedef T type
 

◆ etl::remove_all_extents

struct etl::remove_all_extents

template<typename T>
struct etl::remove_all_extents< T >

remove_all_extents

Public Types

typedef T type
 

◆ etl::rank

struct etl::rank

template<typename T>
struct etl::rank< T >

rank

Additional Inherited Members

- Public Types inherited from etl::integral_constant< size_t, 0 >
typedef size_t value_type
 
typedef integral_constant< size_t, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< size_t, 0 >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< size_t, 0 >
static const size_t value
 

◆ etl::decay

struct etl::decay

template<typename T>
struct etl::decay< T >

decay

Public Types

typedef etl::remove_reference< T >::type U
 
typedef etl::conditional< etl::is_array< U >::value, typename etl::remove_extent< U >::type *, typename etl::remove_cv< U >::type >::type type
 

◆ etl::is_base_of

struct etl::is_base_of

template<typename TBase, typename TDerived>
struct etl::is_base_of< TBase, TDerived >

is_base_of

Static Public Attributes

static const bool value = (sizeof(check((internal*)0)) == sizeof(TBase*))
 

◆ etl::alignment_of

struct etl::alignment_of

template<typename T>
struct etl::alignment_of< T >

add_rvalue_reference

decval is_convertible Alignment templates.

decval is_convertible Alignment templates. These require compiler specific intrinsics.

Additional Inherited Members

- Public Types inherited from etl::integral_constant< size_t, size_t(__alignof__(T))>
typedef size_t value_type
 
typedef integral_constant< size_t, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< size_t, size_t(__alignof__(T))>
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< size_t, size_t(__alignof__(T))>
static const size_t value
 

◆ etl::alignment_of< void >

struct etl::alignment_of< void >

Specialisation of 'alignment_of' for 'void'.

Additional Inherited Members

- Public Types inherited from etl::integral_constant< size_t, 0 >
typedef size_t value_type
 
typedef integral_constant< size_t, VALUE > type
 
- Public Member Functions inherited from etl::integral_constant< size_t, 0 >
 operator value_type () const
 
- Static Public Attributes inherited from etl::integral_constant< size_t, 0 >
static const size_t value