XIEITE
General-purpose C++ utility libraryThis project extends the standard library without external dependencies and provides a somewhat organized collection of questionably useful tools for various shenanigans
Features (click to expand)
-
constexpr range manipulation functions- An iterator iterator
- Modern analog literals, up to three dimensions
- Type conversion functor objects
- Argument manipulation functions
- Units, unit conversions, and corresponding literal suffixes
-
std ::FILE * wrappers- A standard streams handle for advanced terminal manipulation
- 2D geometrical elements and operations
- Integer division rounding functions
- A big-integer class
- Factorial and Fibonacci lookup tables, generated at compile-time
- Cross-platform 128-bit integer type aliases
- Bit joining and splitting functions
-
constexpr string hashing functions- Wrappers for numbers and bit-fields
- An integer casting function with consideration for signedness
- Integer overflow detection functions
- An interruptable uniform random number distribution
- Aggregate class arity getter
- A tuple constructor from any aggregate class
- A
typeid name demanger- Continuous enumeration size getter
- Type name and value stringification constants
- Tuple manipulation functions
- A non-recursive type list
- The most complete collection of compiler, standard library, platform, unix standard, architecture, word size, endianness, encoding, language, and feature detection macros on the internet
- Logical operations and other utilities for preprocessor metaprogramming
- Cross-platform diagnostic pragma macros
- Cross-platform attribute wrapper macros
- Various C++ utility macros
- Aligned memory manipulation functions
- A cosmic ray detector
- A cross-platform process executor function
- Named common process exit codes
- A thread pool
-
concept wrappers for all standard type trait classes- Utilities for checking, adding, removing, replacing, and combining
const , volatile , and reference qualifiers and non-static member function qualifiers[Source code]
This library is currently header-only.
Requirements
- C++26- Latest compiler of choice (preferrably GCC)
Usage
cmake_minimum_required (VERSION 3.25 )project (myProject )include (FetchContent )# ... target_compile_features (myProject PRIVATE cxx_std_26 )FetchContent_Declare (xieite GIT_REPOSITORY "https://github.com/Eczbek/xieite" GIT_TAG main )FetchContent_MakeAvailable (xieite )target_link_libraries (myProject PRIVATE xieite )
All code in this library is contained within the '
xieite ' namespace.Preprocessor macros are prefixed with '
XIEITE ' to prevent naming collisions.Internal identifiers are prefixed with '
DETAIL_XIEITE ' and are not intended to be used directly.This documentation is currently incomplete.
Key:
- [Hyperlink]
-
- Outdated page
-
// Comment -
keyword -
control_flow -
#directive -
type {}-
variable -
callable_variable ()-
concept <>-
namespace {}-
function ()-
[[attribute ]]-
"string" -
number -
MACRO -
FUNCTIONLIKE_MACRO ()