A lightweight c++17 utility library. Originally intended to be a less bulky replacement for boost. It contains the following libraries:
Library with various efficient containers and tools.
xo/container/circular_deque.h
A deque stored in a ring bufferxo/container/circular_frame_buffer.h
xo/container/container_algorithms.h
xo/container/container_tools.h
xo/container/dynarray.h
An array with run-time allocationxo/container/flag_set.h
Container type for storing flagsxo/container/flat_map.h
A map stored in a flat datastructurexo/container/prop_node.h
A hierarchical container that can contain any typexo/container/prop_node_tools.h
xo/container/small_vector.h
xo/container/sorted_vector.h
A vector with sorted elementsxo/container/storage.h
A container for storing columns of dataxo/container/storage_tools.h
xo/container/table.h
xo/container/view_if.h
Iterate through elements of a cotainer that match a specific condition
Library for debugging, testing and performance analysis.
xo/diagnose/debug_storage.h
xo/diagnose/debug_tools.h
xo/diagnose/profiler.h
Light-weight invasive profiler that measures user-tagged function timesxo/diagnose/profiler_config.h
xo/diagnose/test_framework.h
Framework for unit testing
A light-weight subset of the C++17 filesystem library.
xo/filesystem/filesystem.h
Basic file operationsxo/filesystem/path.h
Class for storing paths
A library for efficient and flexible 3d geometry.
xo/geometry/angle.h
Class for representing angles in radians or degrees, with efficient conversion between typesxo/geometry/axes_type.h
xo/geometry/catmull_rom.h
Catmull-Rom spline implementationxo/geometry/dynmat.h
xo/geometry/dynvec.h
xo/geometry/mat33.h
xo/geometry/path_alg.h
xo/geometry/quat.h
Quaternion classxo/geometry/transform.h
3D Transformation class (translation + rotation)xo/geometry/vec.h
xo/geometry/vec3.h
3D Vector classxo/geometry/vec4.h
4D Vector class
Library for dealing with numbers.
xo/numerical/average.h
xo/numerical/bounded.h
xo/numerical/bounds.h
xo/numerical/compare.h
xo/numerical/constants.h
xo/numerical/delayer.h
xo/numerical/delta.h
xo/numerical/filter.h
xo/numerical/functions.h
xo/numerical/math.h
xo/numerical/piecewise_constant_function.h
xo/numerical/piecewise_linear_function.h
xo/numerical/polynomial.h
xo/numerical/random.h
xo/numerical/regression.h
xo/numerical/regular_piecewise_linear_function.h
Library for input / output to serial streams of data.
xo/serialization/char_stream.h
xo/serialization/serialize.h
xo/shape/aabb.h
xo/shape/box.h
xo/shape/capsule.h
xo/shape/cone.h
xo/shape/cylinder.h
xo/shape/plane.h
xo/shape/shape.h
xo/shape/sphere.h
Library for dealing with strings.
xo/string/dictionary.h
xo/string/pattern_matcher.h
Match strings using globbing (i.e. using * and ?)xo/string/stack_string.h
String that supports push / popxo/string/string_cast.h
Convert strings to / from any typexo/string/string_cast_enum.h
xo/string/string_tools.h
Many tools for string manipulationxo/string/string_type.h
System related tools such as logging and versioning.
xo/system/assert.h
Support for assert with optional exceptionsxo/system/error_code.h
xo/system/log.h
Advanced logging systemxo/system/log_level.h
xo/system/log_sink.h
xo/system/settings.h
xo/system/system_tools.h
xo/system/type_class.h
xo/system/version.h
Class for storing version numbers
Library for dealing with time.
xo/time/stopwatch.h
xo/time/time.h
xo/time/timer.h
Several utilities that don't fit in any other library.
xo/utility/color.h
xo/utility/color_gradient.h
xo/utility/data_algorithms.h
xo/utility/factory.h
xo/utility/file_resource_cache.h
Caching instances of classes created from a filexo/utility/handle.h
xo/utility/hash.h
xo/utility/interpolation.h
xo/utility/interruptible.h
xo/utility/irange.h
xo/utility/memoize.h
Class that remembers and reuses outcomes for computationally expensive functionsxo/utility/memory_tools.h
xo/utility/optional.h
Efficient optional class that uses sentinel values for integer and floating point typesxo/utility/pointer_iterator.h
xo/utility/pointer_types.h
xo/utility/sfinae_tools.h