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 assisting in various shenanigans
Some features:
-
constexpr
string manipulation functions- An iterator iterator
- Modern analog literals, up to three dimensions
- Type conversion functor objects
- Argument manipulation functions
- Units, conversions thereof, 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, value, and member variable name stringification constants
- Tuple manipulation functions
- A non-recursive type list
- The most complete collection of compiler, standard library, platform, 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 ()