NanoRange (2018-present)

GitHub: github.com/tcbrindle/nanorange

NanoRange is a C++17 implementation of the new “ranges” functionality in the C++20 standard library. Compatible with all major compilers, it includes all of the new concepts (implemented via template metaprogramming), algorithms, range adaptors and almost everything else. It’s available either as a single-header drop-in replacement for <algorithm>, or via the Conan or vcpkg package managers.

span.hpp (2018-present)

GitHub: github.com/tcbrindle/span.hpp

A C++11-compatible implementation of C++20’s new std::span type. It’s a single header you can drop into your project, and features optional bounds-checking which is customisable via macros.

raytracer.hpp (2018)

GitHub: github.com/tcbrindle/raytracer.hpp

A fun weekend project, this is a C++17 reimplementation of a simple raytracer example I found online, with the twist that it can operate entirely at compile-time via constexpr functions. Somehow briefly ended up as the top item on Hacker News, a year after I wrote it.

numeris_romanis (2019)

GitHub: github.com/tcbrindle/numeris_romanis

C++ has long lacked the ability to embed movie copyright dates in source code, and perform calculations with them. Numeris Romanis rectifies this by offering roman numeral support for C++17 and later. Approved by Tim Sweeney.

libsudoku (2017)

GitHub: github.com/tcbrindle/libsudoku

A small, fast library for solving sudoku puzzles, implemented using Range-V3. Features both C++ and C APIs.

utf-ranges (2017)

GitHub: github.com/tcbrindle/utf_ranges

A collection of views and algorithms for dealing with Unicode text using Range-V3

OggConvert (2007-2010)

GitHub: github.com/tcbrindle/oggconvert

A GTK/Python GUI for converting media files to Ogg Vorbis/Theora formats written back in 2007. Moderately popular back in the day, it’s still available in some Linux distros, and still has its own Wikipedia entry.