Skip to content
Changes since v0.1:
- Changes to the delegate source code:
  - complete overhaul of internal code while keeping the interface compatible with versions since v0.1
  - added the possibility to directly assign function objects to delegates, e.g. `rome::delegate<bool(int)> = [](int i){ return i>0; };`
  - fixed that creating a delegate from a small buffer optimizable function object was falsely set `noexcept` if the function object was copied and copying is not `noexcept`
  - fixed compiler generated, hidden exception checks in the delegate's destructors because the internally used functions were incorrectly not set `noexcept`
  - improved compile error messages, especially if function objects of incompatible signature are assigned
  - minimized amount of code generated through templates
  - made the library single header (merged headers)
- Changes to the tests:
  - added CMake to build and run the tests (minimum required version is 3.20)
  - improved consistency, readability and performance of unit tests and added some missing checks
  - added tests for expected compile errors
  - added tests of the provided examples
  - added code coverage report for unit test runs (LLVM only)
  - added address sanitizer and undefined behavior sanitizer analysis to unit test runs (LLVM only)
  - added clang-tidy static analysis
  - added additional Clang and GCC toolchains for C++14 and C++23 to CI test runs
- improved documentation