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.

68 lines
1.9 KiB

4 years ago
  1. # gplib
  2. General Purpose library for Freestanding C++ environment and POSIX systems.
  3. > Expects C++17
  4. ## Datastructures
  5. ### `buffer`
  6. Also named "slices" in other languages, they are a combination of a pointer and a size.
  7. ### `array`
  8. A fixed size, inplace array.
  9. ### `indexed_array`
  10. A resizable, fragmentation resistant array, it associates elements with fixed indices. It will reuse deleted indices.
  11. ### `optional`
  12. A Maybe monad, will not allocate for final classes or primitives.
  13. ### `variant` and `fixed_variant`
  14. ### `ring_list`
  15. ### `bloomfilter`
  16. ### `quotient_filter`
  17. ## Algorithms
  18. ## Tools
  19. ### Allocators
  20. ### Renderer
  21. ### Internal file-system
  22. ## GP Configuration
  23. ### `enum class gp_errorcodes`
  24. This `enum` should not contain any non-zero value.
  25. - `infinite_skipstone`: used when a linear probing reaches infinity lookup
  26. ### Generic elements
  27. - `constexpr bool gp_config::has_exceptions`: enables or disables exceptions throwing
  28. - `constexpr bool gp_config::has_buffer_bounds`: enables or disables bound checking
  29. - `constexpr size_t gp_config::arc4random_strength`: determines the amount of shuffling of the arc4random PRNG
  30. - `constexpr /* T */ gp_config::assertion`: `T` is a callable type taking a boolean predicate and a `const char*`
  31. - `typedef /* T */ file_descriptor_t`: `T` is an integer type. No negative value should be expected
  32. ### Rendering and mathematics
  33. - `using gp_config::rendering::default_type`: provide a numeric type for rendering and for the mathematical framework
  34. - `constexpr default_type gp_config::rendering::epsilon`: a small value of the default type (example for float: `0.001f`)
  35. - `#define GP_CONFIG__RENDERING__COLOR_T`: a configuration define for storing a color for rendering purposes
  36. ### Memory
  37. - `using gp_config::memory_module::default_allocator`: a default constructible allocator type
  38. - `constexpr bool gp_config::memory_module::is_ok`: true if the default allocator is able to allocate, false if not