Todo List

Member iox::concurrent::LoFFLi::init  (cxx::not_null< Index_t * > freeIndicesMemory, const uint32_t capacity) noexcept

: why init not in ctor

Member iox::cxx::string< Capacity >::operator!=  (const char *const rhs) const noexcept

consider implementing the inequality operator for a char array for which the size is known at compile time; it could have the following signature template <int N> bool operator!=(const char (&rhs)[N]) const noexcept

Member iox::cxx::string< Capacity >::operator==  (const char *const rhs) const noexcept

consider implementing the equality operator for a char array for which the size is known at compile time; it could have the following signature template <int N> bool operator==(const char (&rhs)[N]) const noexcept

Class iox::log::Logger

for asynchronous logging, make the logger an active object according to Herb Sutter https://herbsutter.com/2010/07/12/effective-concurrency-prefer-using-active-objects-instead-of-naked-threads/

Member iox::log::Logger::LogStream

LogStream needs to call Log(); do we want to make Log() public?

Member iox::posix::MessageQueue::receive  () const noexcept

zero copy receive with receive(cxx::string&); cxx::string would be the buffer for mq_receive

Member iox::posix::Timer::now  () noexcept

maybe move this to a clock implementation?

Member iox::posix::Timer::Timer  (const units::Duration timeToWait) noexcept

refactor this cTor and its functionality to a class called StopWatch

Member iox::rp::AtomicRelocatablePointer< T >::AtomicRelocatablePointer  (const AtomicRelocatablePointer &)=delete

: can be implemented when needed, note that the offset must be recomputed during the move/copy

Class iox::rp::relocatable_ptr< T >

specialize for another pointer class for this use case once it is fully defined/understood