A minimalist C++23 ring buffer.
- Raw dynamically allocated array to reduce reliance on stl.
Enter the reproducible development shell (Clang):
nix develop(If using direnv, simply run direnv allow)
Or pick a toolchain explicitly -- CC/CXX are set by the shell, so the
same CMake presets work in both:
nix develop .#clang
nix develop .#gccThe Nix package builds follow the same scheme (clang is the default):
nix build # Clang
nix build .#gcc # GCCBoth toolchains ship clangd, clang-format and clang-tidy; the debugger
matches the compiler (lldb for Clang, gdb for GCC).
Configure the project using CMake presets:
cmake --preset defaultBuild the project (Debug by default):
cmake --build --preset debugFor a release build (optimized, no sanitizers):
cmake --build --preset releaseRun the test suite:
ctest --preset debug