Lightweight_std is a library which provides some features of the c++ standard library. It is meant for use on embedded systems like microcontrollers, where the standard library is to memory intensive or just not available.
The current version includes implementations for:
-
<algorithm> (in "algorithm.hpp")
- synthesized comparison operators (all comparison operators expressed in terms of less than)
std::find
std::find_if
std::find_if_not
- common version of free
std::erase
- common version of free
std::erase_if
std::remove
std::remove_if
std::max
(also available asmax_of
for Arduino environments)std::min
(also available asmin_of
for Arduino environments)std::equal
std::lexicographical_compare
-
<functional> (in "functional.hpp")
std::equal_to
std::hash
(with specialization for integral types andlw_std::string
)
-
<limits> (in "limits.hpp")
std::limits
(just::max
and::min
) (with specialization foruint8_t
,uint16_t
,uint32_t
anduint64_t
)
-
<list> (in "list.hpp")
std::list
(non-complete API)
-
<memory> (in "memory.hpp")
std::allocator
std::unique_ptr
(non-complete API)
-
<queue> (in "queue.hpp")
std::queue
(withlist
as default underlying container) (non-complete API)
-
<string> (in "string.hpp")
std::string
(passthrough ofstd::string
or Arduino'sString
)
-
<unordered_set> (in "unordered_set.hpp")
std::unordered_set
(non-complete API)
-
<unordered_map> (in "unordered_map.hpp")
std::unordered_map
(non-complete API)
-
<utility> (in "utility.hpp")
std::move
std::forward
std::swap
std::pair
(with compatibility constructor and comparison operators forstd::pair
, enable by defining LWSTD_BUILD_STD_COMPATIBILITY)std::make_pair
-
<vector> (in "vector.hpp")
std::vector
(non-complete API)