stdan is a small modern C++ project for experimenting with and implementing data structures, algorithms, and related supporting utilities.
The repository is organized to grow over time. New implementations, tests, and supporting components can be added without changing the overall project structure or build flow.
include/public headerssrc/library source filestests/test targets and test sourcesvendor/third-party dependencies
- CMake 3.20 or newer
- A C++23-capable compiler with support for explicit object parameters ("deducing this"), e.g.:
- GCC 14 or newer
- Clang 19 or newer
- MSVC from Visual Studio 2022 17.8 or newer
makefor the provided Makefile workflow on Unix-like systems (Windows builds use CMake directly)
Make sure to grab vendored submodules:
git submodule update --init --recursivecmake -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build buildmake buildcmake -S . -B build -G "Visual Studio 17 2022" -A x64 -DSTDAN_BUILD_TESTS=ON
cmake --build build --config Debug --target stdan_tests
ctest --test-dir build -C Debug --output-on-failureTests are optional and are enabled with STDAN_BUILD_TESTS=ON.
cmake -B build -DCMAKE_BUILD_TYPE=Debug -DSTDAN_BUILD_TESTS=ON
cmake --build build --target stdan_tests
ctest --test-dir build --output-on-failuremake test- The main library target is
stdan. compile_commands.jsoncan be generated as part of the configured build.- The project currently uses a static library build.
See CONTRIBUTING.md