/xstd

Header-Only C++ Library to extend the functionality of the STL

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Lyrahgames' Extended Standard

Header-Only C++ Library to Extend the Functionality of the STL

Development Status

master
Current

Requirements

Language Standard: C++20
Compiler: GCC | Clang
Build System: build2
Operating System: Linux
Dependencies: -
Optional Dependencies: doctest

Getting Started

Usage with build2

Add this repository to the repositories.manifest file of your build2 package.

:
role: prerequisite
location: https://github.com/lyrahgames/xstd.git

Add the following entry to the manifest file with a possible version dependency.

depends: lyrahgames-xstd

Add these entries to your buildfile.

import libs = lyrahgames-xstd%lib{lyrahgames-xstd}
exe{your-executable}: {hxx cxx}{**} $libs

Installation

The standard installation process will only install the header-only library with some additional description, library, and package files.

bpkg -d build2-packages cc \
  config.install.root=/usr/local \
  config.install.sudo=sudo

Get the latest package release and build it.

bpkg build https://github.com/lyrahgames/xstd.git

Install the built package.

bpkg install lyrahgames-xstd

For uninstalling, do the following.

bpkg uninstall lyrahgames-xstd

If your package uses an explicit depends: lyrahgames-xstd make sure to initialize this dependency as a system dependency when creating a new configuration.

bdep init -C @build cc config.cxx=g++ "config.cxx.coptions=-O3" -- "?sys:lyrahgames-xstd/*"

Alternative Usage

To use other build systems or manual compilation, you only have to add the lyrahgames/xstd/ directory to your project and include it in the compilation process.

API

Sadly, robust and automatic generation of API documents for the modern C++ standard is still lacking. So, you are probably left with reading the source code files directly to get some understanding of the main API parts. The source code provides some amount of comments to make it easier to understand.

Examples