General Purpose library for Freestanding C++ environment and POSIX systems.
Expects C++17
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
enum class gp_errorcodes
This enum
should not contain any non-zero value.
infinite_skipstone
: used when a linear probing reaches infinity lookupconstexpr bool gp_config::has_exceptions
: enables or disables exceptions throwingconstexpr bool gp_config::has_buffer_bounds
: enables or disables bound checkingconstexpr size_t gp_config::arc4random_strength
: determines the amount of shuffling of the arc4random PRNGconstexpr /* 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 expectedusing gp_config::rendering::default_type
: provide a numeric type for rendering and for the mathematical frameworkconstexpr 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 purposesusing gp_config::memory_module::default_allocator
: a default constructible allocator typeconstexpr bool gp_config::memory_module::is_ok
: true if the default allocator is able to allocate, false if not