|
|
|
# ArxTypeTraits
|
|
|
|
|
|
|
|
C++ type_traits for Arduino which cannot use it as default
|
|
|
|
|
|
|
|
|
|
|
|
## Features
|
|
|
|
|
|
|
|
- automatically use standard library first if the boards can
|
|
|
|
- if standard library is not enough (e.g. only C++11 is available), add missing parts listed below
|
|
|
|
- works almost all Arduino platforms (Let me know if you have errors)
|
|
|
|
- compatible with [ArduinoSTL](https://github.com/mike-matera/ArduinoSTL) or other [uClibc++](https://www.uclibc.org/) libraries
|
|
|
|
- thx @matthijskooijman
|
|
|
|
|
|
|
|
|
|
|
|
## Supported Class Templates
|
|
|
|
|
|
|
|
### C++11 (defined only for boards before C++11)
|
|
|
|
|
|
|
|
- `std::integral_constant`
|
|
|
|
- `std::true_type`
|
|
|
|
- `std::false_type`
|
|
|
|
- `std::declval`
|
|
|
|
- `std::enable_if`
|
|
|
|
- `std::conditional`
|
|
|
|
- `std::remove_cv`
|
|
|
|
- `std::remove_const`
|
|
|
|
- `std::remove_volatile`
|
|
|
|
- `std::remove_pointer`
|
|
|
|
- `std::remove_reference`
|
|
|
|
- `std::remove_extent`
|
|
|
|
- `std::add_pointer`
|
|
|
|
- `std::forward`
|
|
|
|
- `std::is_same`
|
|
|
|
- `std::is_integral`
|
|
|
|
- `std::is_floating_point`
|
|
|
|
- `std::is_arithmetic`
|
|
|
|
- `std::is_signed`
|
|
|
|
- `std::is_unsigned`
|
|
|
|
- `std::is_pointer`
|
|
|
|
- `std::is_array`
|
|
|
|
- `std::is_convertible`
|
|
|
|
- `std::is_function`
|
|
|
|
- `std::is_empty`
|
|
|
|
- `std::decay`
|
|
|
|
- `std::result_of`
|
|
|
|
|
|
|
|
|
|
|
|
#### for utility
|
|
|
|
|
|
|
|
- `std::numeric_limits` (only `max()` and `min()` now)
|
|
|
|
- `std::swap`
|
|
|
|
- `std::initializer_list`
|
|
|
|
- `std::tuple`
|
|
|
|
- `std::get`
|
|
|
|
- `std::tuple_size`
|
|
|
|
- `std::function`
|
|
|
|
|
|
|
|
|
|
|
|
### C++14 (defined only for boards before C++14)
|
|
|
|
|
|
|
|
- `std::enable_if_t`
|
|
|
|
- `std::decay_t`
|
|
|
|
- `std::remove_cv_t`
|
|
|
|
- `std::remove_const_t`
|
|
|
|
- `std::remove_volatile_t`
|
|
|
|
- `std::remove_reference_t`
|
|
|
|
- `std::remove_pointer_t`
|
|
|
|
- `std::integer_sequence`
|
|
|
|
- `std::index_sequence`
|
|
|
|
- `std::make_index_sequence`
|
|
|
|
- `std::index_sequence_for`
|
|
|
|
|
|
|
|
|
|
|
|
### C++17 (defined only for boards before C++17)
|
|
|
|
|
|
|
|
- `std::void_t`
|
|
|
|
- `std::disjunction`
|
|
|
|
- `std::conjunction`
|
|
|
|
- `std::negation`
|
|
|
|
- `std::apply`
|
|
|
|
|
|
|
|
|
|
|
|
### C++2a
|
|
|
|
|
|
|
|
- `std::remove_cvref`
|
|
|
|
- `std::remove_cvref_t`
|
|
|
|
|
|
|
|
|
|
|
|
### Others (defined for all boards)
|
|
|
|
|
|
|
|
- `arx::is_detected`
|
|
|
|
- `arx::is_callable`
|
|
|
|
- `arx::function_traits`
|
|
|
|
|
|
|
|
|
|
|
|
## Used Inside of
|
|
|
|
|
|
|
|
- [Packetizer](https://github.com/hideakitai/Packetizer)
|
|
|
|
- [MsgPack](https://github.com/hideakitai/MsgPack)
|
|
|
|
- [MsgPacketizer](https://github.com/hideakitai/MsgPacketizer)
|
|
|
|
- [ArduinoOSC](https://github.com/hideakitai/ArduinoOSC)
|
|
|
|
- [PollingTimer](https://github.com/hideakitai/PollingTimer)
|
|
|
|
- [Tween](https://github.com/hideakitai/Tween)
|
|
|
|
- [ArxStringUtils](https://github.com/hideakitai/ArxStringUtils)
|
|
|
|
- [Filters](https://github.com/hideakitai/Filters)
|
|
|
|
- [Debouncer](https://github.com/hideakitai/Debouncer)
|
|
|
|
|
|
|
|
|
|
|
|
## Contributors
|
|
|
|
|
|
|
|
- [Matthijs Kooijman](https://github.com/matthijskooijman)
|
|
|
|
|
|
|
|
|
|
|
|
## License
|
|
|
|
|
|
|
|
MIT
|