emlabcpp
modern opinionated embedded C++ library
|
Go to the source code of this file.
Namespaces | |
emlabcpp | |
MIT License. | |
emlabcpp::detail | |
Variables | |
template<typename T > | |
concept | emlabcpp::additive_operators |
template<typename T > | |
concept | emlabcpp::multiplicative_operators |
template<typename T > | |
concept | emlabcpp::arithmetic_operators = additive_operators< T > && multiplicative_operators< T > |
template<typename T > | |
concept | emlabcpp::arithmetic_assignment |
template<typename T > | |
concept | emlabcpp::arithmetic_like = arithmetic_operators< T > && arithmetic_assignment< T > |
template<typename T > | |
concept | emlabcpp::arithmetic = std::integral< T > || std::floating_point< T > |
template<typename T > | |
concept | emlabcpp::gettable_container |
template<typename T > | |
concept | emlabcpp::range_container |
so, std::ranges::range is meh because it expects return of begin() being input_output_iterator, which has to be def.constructible More... | |
template<typename T > | |
concept | emlabcpp::data_container |
template<typename T > | |
concept | emlabcpp::container = range_container< T > || gettable_container< T > || data_container< T > |
template<typename T > | |
concept | emlabcpp::referenceable_container |
template<typename T , typename ValueType > | |
concept | emlabcpp::range_container_with |
template<typename T , typename Iterator > | |
concept | emlabcpp::range_container_with_iter |
template<typename T , typename ValueType > | |
concept | emlabcpp::data_container_with |
template<typename T , typename DataIterator > | |
concept | emlabcpp::data_container_with_iter |
template<typename T > | |
concept | emlabcpp::static_sized |
template<typename UnaryCallable , typename Container > | |
concept | emlabcpp::container_invocable |
template<typename UnaryCallable , typename ReturnValue , typename... Args> | |
concept | emlabcpp::invocable_returning |
template<typename Stream , typename T > | |
concept | emlabcpp::detail::directly_streamable_for = requires( Stream os, T val ) { os.operator<<( val ); } |
template<typename T > | |
concept | emlabcpp::ostreamlike |
template<typename T > | |
concept | emlabcpp::ostreamable |
template<typename T , typename Variant > | |
concept | emlabcpp::alternative_of |
Thanks for the solution goes to PJBoy@libera. More... | |
template<typename T , typename Tuple > | |
concept | emlabcpp::element_of |
template<typename T > | |
concept | emlabcpp::with_value_type = requires { typename T::value_type; } |
template<typename T , typename Signature > | |
concept | emlabcpp::with_signature = std::same_as< typename signature_of< T >::signature, Signature > |
template<typename T > | |
concept | emlabcpp::with_push_back |
template<typename T , typename U > | |
concept | emlabcpp::some = std::same_as< std::remove_cv_t< T >, U > |