XIEITE

General-purpose C++ utility library
(with a slight focus on metaprogramming)

This project extends the standard library without external dependencies and provides a somewhat organized collection of questionably useful tools for assisting in various shenanigans

Features:
- Integer division rounding functions
- A non-recursive type list
- The largest collection of compiler and platform detection macros on the internet
- Big integer class



[Source code]
This library is currently header-only.



Requirements

- C++26 (but most is C++23, and some parts support C89)
- GCC trunk or Clang trunk (has bugs) or MSVC latest (not fully supported)



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]
- Missing page
- Outdated page #
- // Comment
- keyword
- control_flow
- #directive
- type {}
- variable
- callable_variable()
- concept<>
- namespace {}
- function()
- [[attribute]]
- "string"
- number
- MACRO
- FUNCTIONLIKE_MACRO()