User Documentation ================== Overview -------- This documentation helps end-users to understand and effectively use the ``estd`` module. It provides an overview of the module's contents, grouped by topic, and includes detailed descriptions of the components, their functionality, and usage examples. Container --------- .. uml:: component estd interface array.h interface forward_list.h estd .up.> [platform] : uses estd -- array.h estd -- forward_list.h estd -- object_pool.h estd -- slice.h Below you will find an overview of the contents of the library, grouped by topic. Containers ---------- .. toctree:: :hidden: array deque forward_list object_pool ratio priority_queue ring math stack string string_view tiny_ring ordered_map ordered_vector vec vector .. csv-table:: :widths: 20,100 :ref:`array `, "Fixed-size array" :ref:`deque `, "Double-ended queue, for fast insert and remove operation from front and back." :ref:`forward_list `, "Forward-linked and intrusive list, for fast and easy insertion." :ref:`object_pool `, "Provides a pool of objects of the same type." :ref:`ordered_map `, "Key-value map, based on a sorted vector." :ref:`ordered_vector `, "Fixed-size ordered vector." :ref:`priority_queue `, "std::priority_queue-like class; keeps its elements sorted according to a comparator." :ref:`math `, "Provides various mathematical functions and utilities." "queue", "First-in, first-out (FIFO) data structure." :ref:`stack `, "Last-in, first-out (LIFO) data structure." :ref:`string `, "std::basic_string-like class." :ref:`string_view `, "std::basic_string_view-like class." :ref:`ring `, "First-in, first-out (FIFO) data structure, implemented as a circular buffer." :ref:`tiny_ring `, "Variant of the ring buffer, optimized for <256 elements." :ref:`vec `, "Variable length array, with a statically-defined maximum size." :ref:`vector `, "Variable length array, with a statically-defined maximum size." Vocabulary types ---------------- .. toctree:: :hidden: bitset functional limited multi_slice optional result slice variant .. csv-table:: :widths: 20,100 :ref:`bitset `, "Represents fixed number of bits." :ref:`functional `, "Function reference to a global or member function." :ref:`limited `, "Checks if integral types or enums have a value or not." :ref:`multi_slice `, "Pointer to multiple same-sized arrays of different types." :ref:`optional `, "Manages an *optional* value: a value that may or may not be present." :ref:`result `, "Represents result of an operation, storing a value or an error." :ref:`slice `, "Pointer to a contiguous range of objects; std::span-like class." :ref:`variant `, "Type-safe union." Type traits, type utils ----------------------- .. toctree:: :hidden: type_traits type_utils va_list_ref uncopyable .. csv-table:: :widths: 20,100 :ref:`va_list_ref `, "Wrapper allowing storage of a reference to a va_list." :ref:`type_traits `, "Helper templates, querying properties of types." :ref:`type_utils `, "Utility functions wrapping reinterpret_cast." :ref:`uncopyable `, "A macro to make a class uncopyable that cannot inherit from the uncopyable base class." Other utilities --------------- .. toctree:: :hidden: assert algorithm iterator memory typed_mem static_assert big_endian constructor limits index_sequence little_endian indestructible singleton tuple chrono type_list none va_list_ref .. csv-table:: :widths: 20,100 "alloc", "Helper functions for APIs allowing custom memory allocators." :ref:`assert `, "Checking assertions at runtime." :ref:`memory `, "Utility functions which operate on slices." :ref:`typed_mem `, "Typed memory for delayed creation of objects." :ref:`big_endian `, "Big-endian encoding (data serialization)." :ref:`constructor `, "Helper struct providing a way to construct objects in pre-allocated memory (‘placement new’ wrapper)." :ref:`index_sequence `, "Compile-time integer sequence to represent a sequence of indices." :ref:`static_assert `, "Checking assertions at compile time." :ref:`singleton`, "Templated implementation of the singleton pattern." :ref:`little_endian `, "Little endian encoding (data serialization)." :ref:`chrono `, "Time unit types and conversions between them." :ref:`indestructible `, "Provides transparent wrapper for global objects that are never destructed." :ref:`tuple`,"Helper functions to use with the std::tuple type." :ref:`type_list `, "The compile-time construct for collection of types." :ref:`none `, "Helper struct which can be cast to any type, calling the default constructor." :ref:`va_list_ref `, "Wrapper allowing storage of a reference to a va_list." Algorithms ---------- .. csv-table:: :widths: 20,100 :ref:`iterator `, "Helper function operating on iterators, providing C++11 functionality to C++03." :ref:`algorithm `, "Generic implementations of commonly-used algorithms." Numerics -------- .. csv-table:: :widths: 20,100 :ref:`limits `,"Define numerical limits." :ref:`ratio `, "std::ratio-like class template compile-time rational arithmetic support."