New features:
- added a partial implementation of the C++23 ranges standard: chunk_view, chunk_by_view, stride_view and repeat_view (LLVM implementations for these views were used as models for our C++17 based implementations)
- updates to drop_view, values_view, keys_view and take _view
- made nanorange's adjacent_find and count ranges algorithms available and provided unit tests
Bug fixes:
- apply the ranges::range concept on the AnyView constructor taking a Container template as input (this fixes a rare compilation error encountered with the GitHub CI)
This update also modifies the build system to use shacl-cmake.
Note: this also contains an implementation for the C++23 zip_view and zip_transform_view but these are not entirely working as they should and should therefore not be used.