A general purpose extension library for the C++17 stdlib
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Daniel Kolesa a56966d6cf coroutines: import riscv64 assembly 1 week ago
data update unicode data to 11.0 1 year ago
doc include all examples in generated docs 2 years ago
examples meson: do not set global cxxflags 8 months ago
ostd fix some dumb gcc warnings 5 months ago
src coroutines: import riscv64 assembly 1 week ago
tests rename generated tests executables to prevent conflict 7 months ago
.gitignore implement all the unicode ctype funcs, generate the tables 1 year ago
COPYING.md update unicode data to 11.0 1 year ago
README.md build: add meson as the new buildsystem for libostd 8 months ago
gen_unicode.cc build: add meson as the new buildsystem for libostd 8 months ago
meson.build meson: pkg-config file generation 8 months ago
meson_options.txt build: add meson as the new buildsystem for libostd 8 months ago

README.md

libostd

Work in progress, not ready for production use.

Libostd is an extension of the C++17 standard library which mainly provides ranges (to replace iterators) but also various other utilities like proper streams, string formatting, coroutines, concurrency utilities and others. It’s meant to replace the more poorly designed parts of the C++ standard library to make the language easier and more convenient to use.

It is not feature complete right now, as most things are still being worked on.

Documentation for libostd can be found at https://docs.octaforge.org/libostd. Please refer to it for further information (the main page should be answer some more of your questions). You can also read doc/main_page.md and other files in there directly if you don’t need the API documentation.

Building

Libostd is built using Meson. Therefore, you need to install Meson and then you can compile it as usual. Typically, this will be something like

mkdir build && cd build
meson ..
ninja all

This will typically build using either GCC or Clang with the default standard library. Keep in mind that it is you need at least Clang 4.0 or GCC 7.1 to build.