Embedded Template Library 1.0
type_traits.h File Reference
#include "platform.h"
#include "nullptr.h"
#include "static_assert.h"
#include <stddef.h>
#include <stdint.h>

Go to the source code of this file.

Classes

struct  etl::integral_constant< T, VALUE >
 integral_constant More...
 
struct  etl::bool_constant< B >
 
struct  etl::negation< T >
 negation More...
 
struct  etl::remove_reference< T >
 remove_reference More...
 
struct  etl::remove_reference< T & >
 
struct  etl::remove_pointer< T >
 remove_pointer More...
 
struct  etl::remove_pointer< T * >
 
struct  etl::remove_pointer< const T * >
 
struct  etl::remove_pointer< volatile T * >
 
struct  etl::remove_pointer< const volatile T * >
 
struct  etl::remove_pointer< T *const >
 
struct  etl::remove_pointer< const T *const >
 
struct  etl::remove_pointer< volatile T *const >
 
struct  etl::remove_pointer< const volatile T *const >
 
struct  etl::add_pointer< T >
 add_pointer More...
 
struct  etl::is_const< T >
 is_const More...
 
struct  etl::is_const< const T >
 
struct  etl::is_const< const volatile T >
 
struct  etl::remove_const< T >
 remove_const More...
 
struct  etl::remove_const< const T >
 
struct  etl::add_const< T >
 add_const More...
 
struct  etl::add_const< const T >
 
struct  etl::is_volatile< T >
 is_volatile More...
 
struct  etl::is_volatile< volatile T >
 
struct  etl::is_volatile< const volatile T >
 
struct  etl::remove_volatile< T >
 remove_volatile More...
 
struct  etl::remove_volatile< volatile T >
 
struct  etl::add_volatile< T >
 add_volatile More...
 
struct  etl::add_volatile< volatile T >
 
struct  etl::remove_cv< T >
 remove_cv More...
 
struct  etl::add_cv< T >
 add_cv More...
 
struct  etl::remove_cvref< T >
 remove_cvref More...
 
struct  etl::is_integral< T >
 is_integral More...
 
struct  etl::is_integral< bool >
 
struct  etl::is_integral< char >
 
struct  etl::is_integral< unsigned char >
 
struct  etl::is_integral< signed char >
 
struct  etl::is_integral< wchar_t >
 
struct  etl::is_integral< short >
 
struct  etl::is_integral< unsigned short >
 
struct  etl::is_integral< int >
 
struct  etl::is_integral< unsigned int >
 
struct  etl::is_integral< long >
 
struct  etl::is_integral< unsigned long >
 
struct  etl::is_integral< long long >
 
struct  etl::is_integral< unsigned long long >
 
struct  etl::is_integral< const T >
 
struct  etl::is_integral< volatile T >
 
struct  etl::is_integral< const volatile T >
 
struct  etl::is_signed< T >
 is_signed More...
 
struct  etl::is_signed< char >
 
struct  etl::is_signed< wchar_t >
 
struct  etl::is_signed< signed char >
 
struct  etl::is_signed< short >
 
struct  etl::is_signed< int >
 
struct  etl::is_signed< long >
 
struct  etl::is_signed< long long >
 
struct  etl::is_signed< float >
 
struct  etl::is_signed< double >
 
struct  etl::is_signed< long double >
 
struct  etl::is_signed< const T >
 
struct  etl::is_signed< volatile T >
 
struct  etl::is_signed< const volatile T >
 
struct  etl::is_unsigned< T >
 is_unsigned More...
 
struct  etl::is_unsigned< bool >
 
struct  etl::is_unsigned< char >
 
struct  etl::is_unsigned< unsigned char >
 
struct  etl::is_unsigned< wchar_t >
 
struct  etl::is_unsigned< unsigned short >
 
struct  etl::is_unsigned< unsigned int >
 
struct  etl::is_unsigned< unsigned long >
 
struct  etl::is_unsigned< unsigned long long >
 
struct  etl::is_unsigned< const T >
 
struct  etl::is_unsigned< volatile T >
 
struct  etl::is_unsigned< const volatile T >
 
struct  etl::is_floating_point< T >
 is_floating_point More...
 
struct  etl::is_floating_point< float >
 
struct  etl::is_floating_point< double >
 
struct  etl::is_floating_point< long double >
 
struct  etl::is_floating_point< const T >
 
struct  etl::is_floating_point< volatile T >
 
struct  etl::is_floating_point< const volatile T >
 
struct  etl::is_same< T1, T2 >
 is_same More...
 
struct  etl::is_same< T, T >
 
struct  etl::is_void< T >
 is_void More...
 
struct  etl::is_void< void >
 
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_array< T[]>
 
struct  etl::is_array< T[MAXN]>
 
struct  etl::is_pointer_helper< T >
 is_pointer More...
 
struct  etl::is_pointer_helper< T * >
 
struct  etl::is_pointer< T >
 is_pointer More...
 
struct  etl::is_lvalue_reference_helper< T >
 is_lvalue_reference More...
 
struct  etl::is_lvalue_reference_helper< T & >
 
struct  etl::is_lvalue_reference< T >
 is_lvalue_reference More...
 
struct  etl::is_reference< T >
 is_reference More...
 
struct  etl::is_pod< T >
 is_rvalue_reference More...
 
struct  etl::conditional< B, T, F >
 conditional More...
 
struct  etl::conditional< false, T, F >
 
struct  etl::make_signed< T >
 make_signed More...
 
struct  etl::make_signed< char >
 
struct  etl::make_signed< unsigned char >
 
struct  etl::make_signed< wchar_t >
 
struct  etl::make_signed< unsigned short >
 
struct  etl::make_signed< unsigned int >
 
struct  etl::make_signed< unsigned long >
 
struct  etl::make_signed< unsigned long long >
 
struct  etl::make_signed< const T >
 
struct  etl::make_signed< volatile T >
 
struct  etl::make_signed< const volatile T >
 
struct  etl::make_unsigned< T >
 make_unsigned More...
 
struct  etl::make_unsigned< char >
 
struct  etl::make_unsigned< signed char >
 
struct  etl::make_unsigned< short >
 
struct  etl::make_unsigned< wchar_t >
 
struct  etl::make_unsigned< int >
 
struct  etl::make_unsigned< long >
 
struct  etl::make_unsigned< long long >
 
struct  etl::make_unsigned< const T >
 
struct  etl::make_unsigned< volatile T >
 
struct  etl::make_unsigned< const volatile T >
 
struct  etl::enable_if< B, T >
 enable_if More...
 
struct  etl::enable_if< true, T >
 
struct  etl::extent< T, MAXN >
 extent More...
 
struct  etl::extent< T[], 0 >
 
struct  etl::extent< T[], MAXN >
 
struct  etl::extent< T[MAXN], 0 >
 
struct  etl::extent< T[I], MAXN >
 
struct  etl::remove_extent< T >
 remove_extent More...
 
struct  etl::remove_extent< T[]>
 
struct  etl::remove_extent< T[MAXN]>
 
struct  etl::remove_all_extents< T >
 remove_all_extents More...
 
struct  etl::remove_all_extents< T[]>
 
struct  etl::remove_all_extents< T[MAXN]>
 
struct  etl::rank< T >
 rank More...
 
struct  etl::rank< T[]>
 
struct  etl::rank< T[MAXN]>
 
struct  etl::decay< T >
 decay More...
 
struct  etl::is_base_of< TBase, TDerived >
 is_base_of More...
 
struct  etl::is_base_of< TBase, TDerived, true >
 
struct  etl::private_type_traits::dummy
 
struct  etl::is_class< T >
 is_class More...
 
struct  etl::add_lvalue_reference< T >
 add_lvalue_reference More...
 
struct  etl::add_lvalue_reference< T & >
 
struct  etl::add_lvalue_reference< void >
 
struct  etl::add_lvalue_reference< const void >
 
struct  etl::add_lvalue_reference< volatile void >
 
struct  etl::add_lvalue_reference< const volatile void >
 
struct  etl::alignment_of< T >
 add_rvalue_reference More...
 
struct  etl::alignment_of< void >
 
struct  etl::alignment_of< const void >
 
struct  etl::conditional_integral_constant< true, T, TRUE_VALUE, FALSE_VALUE >
 
struct  etl::conditional_integral_constant< false, T, TRUE_VALUE, FALSE_VALUE >
 
struct  etl::is_one_of< T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >
 
struct  etl::types< T >
 A set of templates to allow related types to be derived. More...
 
struct  etl::types< T * >
 
struct  etl::types< T *const >
 
struct  etl::types< T & >
 
struct  etl::size_of< T >
 size_of More...
 
struct  etl::size_of< void >
 
struct  etl::is_assignable< T1, T2 >
 conjunction More...
 
struct  etl::is_copy_constructible< T >
 
struct  etl::is_move_constructible< T >
 
struct  etl::is_trivially_constructible< T >
 
struct  etl::is_trivially_copy_constructible< T >
 
struct  etl::is_trivially_destructible< T >
 
struct  etl::is_trivially_copy_assignable< T >
 
struct  etl::is_trivially_copyable< T >
 
struct  etl::is_lvalue_assignable< T1, T2 >
 
struct  etl::unsigned_type< T >
 Defines one of five unsigned types that has the same size as T. More...
 
struct  etl::signed_type< T >
 Defines one of five signed types that has the same size as T. More...
 

Namespaces

namespace  etl
 bitset_ext
 
namespace  etl::private_type_traits
 is_class
 

Macros

#define ETL_TYPE_TRAITS_INCLUDED
 
#define ETL_IS_CHAR_TYPE(type)   (etl::is_same<char, type>::value || etl::is_same<signed char, type>::value || etl::is_same<unsigned char, type>::value)
 
#define ETL_IS_NOT_CHAR_TYPE(type)   (!ETL_IS_CHAR_TYPE(type))
 
#define ETL_IS_POINTER_TYPE(type)   (etl::is_pointer<type>::value)
 
#define ETL_IS_NOT_POINTER_TYPE(type)   (!ETL_IS_POINTER_TYPE(type))
 
#define ETL_TARGET_IS_TRIVIALLY_COPYABLE(type)   (etl::is_trivially_copyable<typename etl::iterator_traits<type>::value_type>::value)
 
#define ETL_TARGET_IS_NOT_TRIVIALLY_COPYABLE(type)   (!ETL_TARGET_IS_TRIVIALLY_COPYABLE(type))
 

Functions

template<typename T >
char etl::private_type_traits::test (int T::*)
 
template<typename T >
dummy etl::private_type_traits::test (...)