emlabcpp
modern opinionated embedded C++ library
emlabcpp::detail Namespace Reference

Classes

struct  decompose_anything
 
struct  static_function_vtable
 
class  static_function_storage
 

Enumerations

enum class  static_function_operations : uint8_t {
  COPY ,
  MOVE ,
  DESTROY
}
 

Functions

template<typename T , T MinVal, T MaxVal>
constexpr bool bounded_derived_test (bounded< T, MinVal, MaxVal > const &)
 
template<class T , std::size_t I0, std::size_t... I>
constexpr auto decompose_count_impl (int &out, std::index_sequence< I0, I... >) -> std::add_pointer_t< decltype(T{ decompose_anything< I0 >{}, decompose_anything< I >{}... }) >
 
template<class T , std::size_t... I>
constexpr void * decompose_count_impl (int &out, std::index_sequence< I... >)
 
template<typename T >
constexpr int decompose_count ()
 
template<typename Derived , std::size_t N>
constexpr bool vec_point_derived_test (vec_point_base< Derived, N > const &)
 
template<typename Derived , typename ValueType >
constexpr bool quantity_derived_test (quantity< Derived, ValueType > const &)
 

Variables

template<typename Stream , typename T >
concept directly_streamable_for = requires( Stream os, T val ) { os.operator<<( val ); }
 
static constexpr std::size_t max_decompose_count = 16
 

Detailed Description


stream related concepts

Enumeration Type Documentation

◆ static_function_operations

Enumerator
COPY 
MOVE 
DESTROY 

Function Documentation

◆ bounded_derived_test()

template<typename T , T MinVal, T MaxVal>
constexpr bool emlabcpp::detail::bounded_derived_test ( bounded< T, MinVal, MaxVal > const &  )
constexpr

◆ decompose_count()

template<typename T >
constexpr int emlabcpp::detail::decompose_count ( )
constexpr

◆ decompose_count_impl() [1/2]

template<class T , std::size_t... I>
constexpr void* emlabcpp::detail::decompose_count_impl ( int &  out,
std::index_sequence< I... >   
)
constexpr

◆ decompose_count_impl() [2/2]

template<class T , std::size_t I0, std::size_t... I>
constexpr auto emlabcpp::detail::decompose_count_impl ( int &  out,
std::index_sequence< I0, I... >   
) -> std::add_pointer_t< decltype( T{ decompose_anything< I0 >{}, decompose_anything< I >{}... } ) >
constexpr

◆ quantity_derived_test()

template<typename Derived , typename ValueType >
constexpr bool emlabcpp::detail::quantity_derived_test ( quantity< Derived, ValueType > const &  )
constexpr

◆ vec_point_derived_test()

template<typename Derived , std::size_t N>
constexpr bool emlabcpp::detail::vec_point_derived_test ( vec_point_base< Derived, N > const &  )
constexpr

Variable Documentation

◆ directly_streamable_for

template<typename Stream , typename T >
concept emlabcpp::detail::directly_streamable_for = requires( Stream os, T val ) { os.operator<<( val ); }

◆ max_decompose_count

constexpr std::size_t emlabcpp::detail::max_decompose_count = 16
staticconstexpr