This single-header library has no other dependencies than the C++ Standard Library and is continuously being tested with the following conforming C++23 compilers, against all three mainstream standard libraries (libstdc++, the MSVC STL, and libc++). Following the model of apt.llvm.org, we support the latest two stable releases of each compiler, plus its current development branch.
MSVC currently fails outright on an ambiguous partial-specialization bug (basic_compass<chequer{...}>), fixed upstream in VS 18.7.0 but not yet present on GitHub Actions' runner image (actions/runner-images#14130 tracks a bump to 18.6.x, still short of the fix). MSVC is not a required PR status check, so this failure is visible but doesn't block merging.
Note that the unit tests depend on Boost.
# Setup the project
mkdir projects && cd ~/projects/
git clone https://github.com/rhalbersma/tabula.git
cd tabula && mkdir build && cd build
# Build the project
cmake .. && cmake --build .
ctest # run the unit tests
example/print_embeddings # print out all the predefined boards
Special thanks to Fabien Letouzey for a very fruitful exchange of ideas.
Copyright Rein Halbersma 2019-2025. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)