FastLED 3.9.15
Loading...
Searching...
No Matches
type_traits.h File Reference
#include <string.h>
#include "fl/stdint.h"
#include "fl/namespace.h"
#include "fl/move.h"
#include "fl/int.h"
+ Include dependency graph for type_traits.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  fl::add_pointer< T >
 
struct  fl::add_pointer< T & >
 
struct  fl::add_pointer< T && >
 
struct  fl::add_rvalue_reference< T >
 
struct  fl::add_rvalue_reference< T & >
 
struct  fl::alignment_of< T >
 
struct  fl::choose_by_rank< T, U >
 
struct  fl::choose_by_signedness< T, U >
 
struct  fl::choose_by_size< T, U >
 
struct  fl::common_type< T, U >
 
struct  fl::common_type_impl< T, U, typename >
 
struct  fl::common_type_impl< double, float >
 
struct  fl::common_type_impl< double, long double >
 
struct  fl::common_type_impl< double, T, typename enable_if<(is_integral< T >::value||is_floating_point< T >::value) &&!is_same< T, double >::value >::type >
 
struct  fl::common_type_impl< float, double >
 
struct  fl::common_type_impl< float, long double >
 
struct  fl::common_type_impl< float, T, typename enable_if<(is_integral< T >::value||is_floating_point< T >::value) &&!is_same< T, float >::value >::type >
 
struct  fl::common_type_impl< i8, u8, void >
 
struct  fl::common_type_impl< long double, double >
 
struct  fl::common_type_impl< long double, float >
 
struct  fl::common_type_impl< T, double, typename enable_if<(is_integral< T >::value||is_floating_point< T >::value) &&!is_same< T, double >::value >::type >
 
struct  fl::common_type_impl< T, float, typename enable_if<(is_integral< T >::value||is_floating_point< T >::value) &&!is_same< T, float >::value >::type >
 
struct  fl::common_type_impl< T, T >
 
struct  fl::common_type_impl< T, U, typename enable_if< is_integral< T >::value &&is_integral< U >::value &&!is_same< T, U >::value &&!((is_same< T, i8 >::value &&is_same< U, u8 >::value)||(is_same< T, u8 >::value &&is_same< U, i8 >::value))>::type >
 
struct  fl::common_type_impl< u8, i8, void >
 
struct  fl::conditional< B, T, F >
 
struct  fl::conditional< false, T, F >
 
struct  fl::contains_type< T >
 
struct  fl::contains_type< T, U, Rest... >
 
struct  fl::decay< T >
 
struct  fl::enable_if< Condition, T >
 
struct  fl::enable_if< true, T >
 
struct  fl::has_member_swap< T >
 
struct  fl::has_member_swap< T >::helper< U, M >
 
struct  fl::integer_promotion_impl< T, U >
 
struct  fl::integral_constant< T, v >
 
struct  fl::is_array< T >
 
struct  fl::is_array< T[]>
 
struct  fl::is_array< T[N]>
 
struct  fl::is_base_of< Base, Derived >
 
struct  fl::is_base_of_v_helper< Base, Derived >
 
struct  fl::is_const< T >
 
struct  fl::is_const< const T >
 
struct  fl::is_floating_point< T >
 
struct  fl::is_floating_point< const T >
 
struct  fl::is_floating_point< double >
 
struct  fl::is_floating_point< float >
 
struct  fl::is_floating_point< long double >
 
struct  fl::is_floating_point< T & >
 
struct  fl::is_floating_point< volatile T >
 
struct  fl::is_function< T >
 
struct  fl::is_function< Ret(Args...) const >
 
struct  fl::is_function< Ret(Args...) const volatile >
 
struct  fl::is_function< Ret(Args...) volatile >
 
struct  fl::is_function< Ret(Args...)>
 
struct  fl::is_integral< T >
 
struct  fl::is_integral< bool >
 
struct  fl::is_integral< char >
 
struct  fl::is_integral< const T >
 
struct  fl::is_integral< int >
 
struct  fl::is_integral< long >
 
struct  fl::is_integral< long long >
 
struct  fl::is_integral< short >
 
struct  fl::is_integral< signed char >
 
struct  fl::is_integral< T & >
 
struct  fl::is_integral< unsigned char >
 
struct  fl::is_integral< unsigned int >
 
struct  fl::is_integral< unsigned long >
 
struct  fl::is_integral< unsigned long long >
 
struct  fl::is_integral< unsigned short >
 
struct  fl::is_integral< volatile T >
 
struct  fl::is_lvalue_reference< T >
 
struct  fl::is_lvalue_reference< T & >
 
struct  fl::is_member_function_pointer< T >
 
struct  fl::is_member_function_pointer< Ret(C::*)(A...) const >
 
struct  fl::is_member_function_pointer< Ret(C::*)(A...)>
 
struct  fl::is_pod< T >
 
struct  fl::is_pod< bool >
 
struct  fl::is_pod< char >
 
struct  fl::is_pod< double >
 
struct  fl::is_pod< float >
 
struct  fl::is_pod< int >
 
struct  fl::is_pod< long >
 
struct  fl::is_pod< long double >
 
struct  fl::is_pod< long long >
 
struct  fl::is_pod< short >
 
struct  fl::is_pod< signed char >
 
struct  fl::is_pod< unsigned char >
 
struct  fl::is_pod< unsigned int >
 
struct  fl::is_pod< unsigned long >
 
struct  fl::is_pod< unsigned long long >
 
struct  fl::is_pod< unsigned short >
 
struct  fl::is_pod_v_helper< T >
 
struct  fl::is_same< T, U >
 
struct  fl::is_same< T, T >
 
struct  fl::is_same_v_helper< T, U >
 
struct  fl::is_signed< T >
 
struct  fl::is_signed< double >
 
struct  fl::is_signed< float >
 
struct  fl::is_signed< int >
 
struct  fl::is_signed< long >
 
struct  fl::is_signed< long double >
 
struct  fl::is_signed< long long >
 
struct  fl::is_signed< short >
 
struct  fl::is_signed< signed char >
 
struct  fl::is_void< T >
 
struct  fl::is_void< void >
 
struct  fl::max_align< T, Rest... >
 
struct  fl::max_align<>
 
struct  fl::max_size< T, Rest... >
 
struct  fl::max_size<>
 
struct  fl::remove_const< T >
 
struct  fl::remove_const< const T >
 
struct  fl::remove_cv< T >
 
struct  fl::remove_cv< const T >
 
struct  fl::remove_cv< const volatile T >
 
struct  fl::remove_cv< volatile T >
 
struct  fl::remove_extent< T >
 
struct  fl::remove_extent< T[]>
 
struct  fl::remove_extent< T[N]>
 
struct  fl::swap_impl< T, false >
 
struct  fl::swap_impl< T, true >
 
struct  fl::type_rank< T >
 
struct  fl::type_rank< bool >
 
struct  fl::type_rank< char >
 
struct  fl::type_rank< double >
 
struct  fl::type_rank< float >
 
struct  fl::type_rank< int >
 
struct  fl::type_rank< long >
 
struct  fl::type_rank< long double >
 
struct  fl::type_rank< long long >
 
struct  fl::type_rank< short >
 
struct  fl::type_rank< signed char >
 
struct  fl::type_rank< unsigned char >
 
struct  fl::type_rank< unsigned int >
 
struct  fl::type_rank< unsigned long >
 
struct  fl::type_rank< unsigned long long >
 
struct  fl::type_rank< unsigned short >
 

Namespaces

namespace  fl
 IMPORTANT!
 

Macros

#define FASTLED_DEFINE_POD_COMPARISON_OPERATOR(CLASS, OP)
 

Typedefs

template<typename T>
using fl::add_pointer_t = typename add_pointer<T>::type
 
template<typename T, typename U>
using fl::common_type_t = typename common_type<T, U>::type
 
template<bool B, typename T, typename F>
using fl::conditional_t = typename conditional<B, T, F>::type
 
template<typename T>
using fl::decay_t = typename decay<T>::type
 
template<bool Condition, typename T = void>
using fl::enable_if_t = typename enable_if<Condition, T>::type
 
using fl::false_type = integral_constant<bool, false>
 
template<typename Base, typename Derived>
using fl::is_derived = enable_if_t<is_base_of<Base, Derived>::value>
 
template<typename T>
using fl::remove_cv_t = typename remove_cv<T>::type
 
using fl::true_type = integral_constant<bool, true>
 

Functions

template<typename T>
add_rvalue_reference< T >::type fl::declval () noexcept
 
template<typename T>
constexpr T && fl::forward (typename remove_reference< T >::type &&t) noexcept
 
template<typename T>
constexpr T && fl::forward (typename remove_reference< T >::type &t) noexcept
 
template<typename T>
void fl::swap (T &a, T &b)
 
template<typename T>
void fl::swap_by_copy (T &a, T &b)
 

Class Documentation

◆ fl::add_pointer

struct fl::add_pointer
+ Inheritance diagram for fl::add_pointer< T >:
Class Members
typedef T * type T *

◆ fl::add_pointer< T & >

struct fl::add_pointer< T & >
+ Inheritance diagram for fl::add_pointer< T & >:
+ Collaboration diagram for fl::add_pointer< T & >:
Class Members
typedef T * type
typedef T * type T *

◆ fl::add_pointer< T && >

struct fl::add_pointer< T && >
+ Inheritance diagram for fl::add_pointer< T && >:
+ Collaboration diagram for fl::add_pointer< T && >:
Class Members
typedef T * type
typedef T * type T *

◆ fl::add_rvalue_reference

struct fl::add_rvalue_reference
+ Inheritance diagram for fl::add_rvalue_reference< T >:
Class Members
typedef T && type T&&

◆ fl::add_rvalue_reference< T & >

struct fl::add_rvalue_reference< T & >
+ Inheritance diagram for fl::add_rvalue_reference< T & >:
+ Collaboration diagram for fl::add_rvalue_reference< T & >:
Class Members
typedef T && type
typedef T & type T&

◆ fl::choose_by_rank

struct fl::choose_by_rank
Class Members
typedef typename value > value), T, typename value > value), U, void >::type >::type type

◆ fl::choose_by_size

struct fl::choose_by_size
Class Members
typedef typename conditional<(sizeof(T) > sizeof(U)), T, typename conditional<(sizeof(U) > sizeof(T)), U, void >::type >::type type

◆ fl::common_type

struct fl::common_type
Class Members
typedef typename type type typename common_type_impl<T, U>::type

◆ fl::common_type_impl

struct fl::common_type_impl
+ Inheritance diagram for fl::common_type_impl< T, U, typename >:
Class Members
typedef T type T

◆ fl::common_type_impl< double, float >

struct fl::common_type_impl< double, float >
+ Inheritance diagram for fl::common_type_impl< double, float >:
+ Collaboration diagram for fl::common_type_impl< double, float >:
Class Members
typedef double type
typedef double type double

◆ fl::common_type_impl< double, long double >

struct fl::common_type_impl< double, long double >
+ Inheritance diagram for fl::common_type_impl< double, long double >:
+ Collaboration diagram for fl::common_type_impl< double, long double >:
Class Members
typedef double type
typedef long double type long double

◆ fl::common_type_impl< double, T, typename enable_if<(is_integral< T >::value||is_floating_point< T >::value) &&!is_same< T, double >::value >::type >

struct fl::common_type_impl< double, T, typename enable_if<(is_integral< T >::value||is_floating_point< T >::value) &&!is_same< T, double >::value >::type >
+ Inheritance diagram for fl::common_type_impl< double, T, typename enable_if<(is_integral< T >::value||is_floating_point< T >::value) &&!is_same< T, double >::value >::type >:
+ Collaboration diagram for fl::common_type_impl< double, T, typename enable_if<(is_integral< T >::value||is_floating_point< T >::value) &&!is_same< T, double >::value >::type >:
Class Members
typedef double type
typedef double type double

◆ fl::common_type_impl< float, double >

struct fl::common_type_impl< float, double >
+ Inheritance diagram for fl::common_type_impl< float, double >:
+ Collaboration diagram for fl::common_type_impl< float, double >:
Class Members
typedef float type
typedef double type double

◆ fl::common_type_impl< float, long double >

struct fl::common_type_impl< float, long double >
+ Inheritance diagram for fl::common_type_impl< float, long double >:
+ Collaboration diagram for fl::common_type_impl< float, long double >:
Class Members
typedef float type
typedef long double type long double

◆ fl::common_type_impl< float, T, typename enable_if<(is_integral< T >::value||is_floating_point< T >::value) &&!is_same< T, float >::value >::type >

struct fl::common_type_impl< float, T, typename enable_if<(is_integral< T >::value||is_floating_point< T >::value) &&!is_same< T, float >::value >::type >
+ Inheritance diagram for fl::common_type_impl< float, T, typename enable_if<(is_integral< T >::value||is_floating_point< T >::value) &&!is_same< T, float >::value >::type >:
+ Collaboration diagram for fl::common_type_impl< float, T, typename enable_if<(is_integral< T >::value||is_floating_point< T >::value) &&!is_same< T, float >::value >::type >:
Class Members
typedef float type
typedef float type float

◆ fl::common_type_impl< i8, u8, void >

struct fl::common_type_impl< i8, u8, void >
+ Inheritance diagram for fl::common_type_impl< i8, u8, void >:
+ Collaboration diagram for fl::common_type_impl< i8, u8, void >:
Class Members
typedef i8 type

◆ fl::common_type_impl< long double, double >

struct fl::common_type_impl< long double, double >
+ Inheritance diagram for fl::common_type_impl< long double, double >:
+ Collaboration diagram for fl::common_type_impl< long double, double >:
Class Members
typedef long double type
typedef long double type long double

◆ fl::common_type_impl< long double, float >

struct fl::common_type_impl< long double, float >
+ Inheritance diagram for fl::common_type_impl< long double, float >:
+ Collaboration diagram for fl::common_type_impl< long double, float >:
Class Members
typedef long double type
typedef long double type long double

◆ fl::common_type_impl< T, double, typename enable_if<(is_integral< T >::value||is_floating_point< T >::value) &&!is_same< T, double >::value >::type >

struct fl::common_type_impl< T, double, typename enable_if<(is_integral< T >::value||is_floating_point< T >::value) &&!is_same< T, double >::value >::type >
+ Inheritance diagram for fl::common_type_impl< T, double, typename enable_if<(is_integral< T >::value||is_floating_point< T >::value) &&!is_same< T, double >::value >::type >:
+ Collaboration diagram for fl::common_type_impl< T, double, typename enable_if<(is_integral< T >::value||is_floating_point< T >::value) &&!is_same< T, double >::value >::type >:
Class Members
typedef T type
typedef double type double

◆ fl::common_type_impl< T, float, typename enable_if<(is_integral< T >::value||is_floating_point< T >::value) &&!is_same< T, float >::value >::type >

struct fl::common_type_impl< T, float, typename enable_if<(is_integral< T >::value||is_floating_point< T >::value) &&!is_same< T, float >::value >::type >
+ Inheritance diagram for fl::common_type_impl< T, float, typename enable_if<(is_integral< T >::value||is_floating_point< T >::value) &&!is_same< T, float >::value >::type >:
+ Collaboration diagram for fl::common_type_impl< T, float, typename enable_if<(is_integral< T >::value||is_floating_point< T >::value) &&!is_same< T, float >::value >::type >:
Class Members
typedef T type
typedef float type float

◆ fl::common_type_impl< T, T >

struct fl::common_type_impl< T, T >
+ Inheritance diagram for fl::common_type_impl< T, T >:
+ Collaboration diagram for fl::common_type_impl< T, T >:
Class Members
typedef T type
typedef T type T

◆ fl::common_type_impl< T, U, typename enable_if< is_integral< T >::value &&is_integral< U >::value &&!is_same< T, U >::value &&!((is_same< T, i8 >::value &&is_same< U, u8 >::value)||(is_same< T, u8 >::value &&is_same< U, i8 >::value))>::type >

struct fl::common_type_impl< T, U, typename enable_if< is_integral< T >::value &&is_integral< U >::value &&!is_same< T, U >::value &&!((is_same< T, i8 >::value &&is_same< U, u8 >::value)||(is_same< T, u8 >::value &&is_same< U, i8 >::value))>::type >
+ Inheritance diagram for fl::common_type_impl< T, U, typename enable_if< is_integral< T >::value &&is_integral< U >::value &&!is_same< T, U >::value &&!((is_same< T, i8 >::value &&is_same< U, u8 >::value)||(is_same< T, u8 >::value &&is_same< U, i8 >::value))>::type >:
+ Collaboration diagram for fl::common_type_impl< T, U, typename enable_if< is_integral< T >::value &&is_integral< U >::value &&!is_same< T, U >::value &&!((is_same< T, i8 >::value &&is_same< U, u8 >::value)||(is_same< T, u8 >::value &&is_same< U, i8 >::value))>::type >:
Class Members
typedef T type
typedef typename type type typename integer_promotion_impl<T, U>::type

◆ fl::common_type_impl< u8, i8, void >

struct fl::common_type_impl< u8, i8, void >
+ Inheritance diagram for fl::common_type_impl< u8, i8, void >:
+ Collaboration diagram for fl::common_type_impl< u8, i8, void >:
Class Members
typedef u8 type

◆ fl::conditional

struct fl::conditional
+ Inheritance diagram for fl::conditional< B, T, F >:
Class Members
typedef T type T

◆ fl::conditional< false, T, F >

struct fl::conditional< false, T, F >
+ Inheritance diagram for fl::conditional< false, T, F >:
+ Collaboration diagram for fl::conditional< false, T, F >:
Class Members
typedef T type
typedef F type F

◆ fl::enable_if

struct fl::enable_if
+ Inheritance diagram for fl::enable_if< Condition, T >:

◆ fl::enable_if< true, T >

struct fl::enable_if< true, T >
+ Inheritance diagram for fl::enable_if< true, T >:
+ Collaboration diagram for fl::enable_if< true, T >:
Class Members
typedef T type T

◆ fl::has_member_swap::helper

struct fl::has_member_swap::helper

◆ fl::remove_const

struct fl::remove_const
+ Inheritance diagram for fl::remove_const< T >:
Class Members
typedef T type T

◆ fl::remove_const< const T >

struct fl::remove_const< const T >
+ Inheritance diagram for fl::remove_const< const T >:
+ Collaboration diagram for fl::remove_const< const T >:
Class Members
typedef T type
typedef T type T

◆ fl::remove_cv

struct fl::remove_cv
+ Inheritance diagram for fl::remove_cv< T >:
Class Members
typedef T type T

◆ fl::remove_cv< const T >

struct fl::remove_cv< const T >
+ Inheritance diagram for fl::remove_cv< const T >:
+ Collaboration diagram for fl::remove_cv< const T >:
Class Members
typedef T type
typedef T type T

◆ fl::remove_cv< const volatile T >

struct fl::remove_cv< const volatile T >
+ Inheritance diagram for fl::remove_cv< const volatile T >:
+ Collaboration diagram for fl::remove_cv< const volatile T >:
Class Members
typedef const volatile T type
typedef T type T

◆ fl::remove_cv< volatile T >

struct fl::remove_cv< volatile T >
+ Inheritance diagram for fl::remove_cv< volatile T >:
+ Collaboration diagram for fl::remove_cv< volatile T >:
Class Members
typedef T type
typedef T type T

◆ fl::remove_extent

struct fl::remove_extent
+ Inheritance diagram for fl::remove_extent< T >:
Class Members
typedef T type T

◆ fl::remove_extent< T[]>

struct fl::remove_extent< T[]>
+ Inheritance diagram for fl::remove_extent< T[]>:
+ Collaboration diagram for fl::remove_extent< T[]>:
Class Members
typedef T type
typedef T type T

◆ fl::remove_extent< T[N]>

struct fl::remove_extent< T[N]>
+ Inheritance diagram for fl::remove_extent< T[N]>:
+ Collaboration diagram for fl::remove_extent< T[N]>:
Class Members
typedef T type
typedef T type T