General Purpose library for Freestanding C++ and POSIX systems
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.
 
 
Ludovic 'Archivist' Lagouardette 0143b6e714 fixed a buffer detail and added fail function пре 4 месеци
.vscode "fixed" the sort, will require more work пре 2 година
extra_tests/001_test Updating bottleneck with a semaphore пре 2 година
include fixed a buffer detail and added fail function пре 4 месеци
tests updated a few containers, unveiled a bug пре 4 месеци
.gitignore gitignore пре 2 година
LICENSE Initial commit пре 4 година
Makefile Added potential extra tests (001 is a placeholder) пре 2 година
README.md Put some documentation пре 3 година
blacklist.txt Fixed misplaced function пре 3 година
doxy.config Started documenting and added a doxygen config пре 3 година
tests.cpp Added a new compiler flag пре 2 година

README.md

gplib

General Purpose library for Freestanding C++ environment and POSIX systems.

Expects C++17

Datastructures

buffer

Also named "slices" in other languages, they are a combination of a pointer and a size.

array

A fixed size, inplace array.

indexed_array

A resizable, fragmentation resistant array, it associates elements with fixed indices. It will reuse deleted indices.

optional

A Maybe monad, will not allocate for final classes or primitives.

variant and fixed_variant

ring_list

bloomfilter

quotient_filter

Algorithms

Tools

Allocators

Renderer

Internal file-system

GP Configuration

enum class gp_errorcodes

This enum should not contain any non-zero value.

  • infinite_skipstone: used when a linear probing reaches infinity lookup

Generic elements

  • constexpr bool gp_config::has_exceptions: enables or disables exceptions throwing
  • constexpr bool gp_config::has_buffer_bounds: enables or disables bound checking
  • constexpr size_t gp_config::arc4random_strength: determines the amount of shuffling of the arc4random PRNG
  • constexpr /* T */ gp_config::assertion: T is a callable type taking a boolean predicate and a const char*
  • typedef /* T */ file_descriptor_t: T is an integer type. No negative value should be expected

Rendering and mathematics

  • using gp_config::rendering::default_type: provide a numeric type for rendering and for the mathematical framework
  • constexpr default_type gp_config::rendering::epsilon: a small value of the default type (example for float: 0.001f)
  • #define GP_CONFIG__RENDERING__COLOR_T: a configuration define for storing a color for rendering purposes

Memory

  • using gp_config::memory_module::default_allocator: a default constructible allocator type
  • constexpr bool gp_config::memory_module::is_ok: true if the default allocator is able to allocate, false if not