This library is a collection of utility classes and functions for C++. It is a collection of independent self-contained headers. This means you can just copy-paste individual header files from this library and use them in your project without additional setup.
- util::buffer, a fixed-size data storage with additional dynamic storage if needed
- util::ring_buffer, a fixed-sized container behaving like an end-to-end connected queue
- util::sorted, a wrapper for keeping containers sorted
- util::enumerate, a Python-like helper to iterate through a container with value and index
- util::multirator, an iterator that can go through several ranges simultaneously
- util::range, a Python-like helper to create a quick range
- util::flags, a type-safe way of storing or-combinations of enum values
- util::non_copyable and util::non_moveable, for disallowing copying or moving on objects
- util::var, for enforcing more strict named typing
- util::ignore_unused, to circumvent compiler warnings about unused variables
- util::scoped
- util::shared
There are two versions of using the util library: individual headers or the whole library.