forked from Ferdi265/cxx-ring-buffer
add README
This commit is contained in:
46
README.md
Normal file
46
README.md
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# cxx-ring-buffer
|
||||||
|
|
||||||
|
a small implementation of a C++ ring-buffer container wrapper and STL-style
|
||||||
|
iterators.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
This projects provides the following types:
|
||||||
|
|
||||||
|
- the template `basic_ring_buffer<ContainerType>`, defined in `<ring-buffer.h>`
|
||||||
|
augments an existing container to be used as a ring buffer
|
||||||
|
- the alias template `ring_buffer<ValueType, Size>`, defined in `<ring-buffer.h>`
|
||||||
|
an alias for `basic_ring_buffer<std::array<ValueType, Size>>`
|
||||||
|
- the template `ring_buffer_iterator<ContainerType>`, defined in `<ring-buffer-iterator.h>`
|
||||||
|
a random access iterator over a `basic_ring_buffer` with the same container type
|
||||||
|
- the template `ring_buffer_const_iterator<ContainerType>`, defined in `<ring-buffer-iterator.h>`
|
||||||
|
a random access iterator over a `basic_ring_buffer` with the same container type,
|
||||||
|
giving `const` access to the elements
|
||||||
|
|
||||||
|
This project can be configured via CMake options or preprocessor defines
|
||||||
|
|
||||||
|
## CMake options
|
||||||
|
|
||||||
|
- `RING_BUFFER_DEFAULT_CXXFLAGS` (default OFF)
|
||||||
|
set the C++ compiler flags to `-Wall -Wextra`, and try to detect the newest supported C++ standard.
|
||||||
|
- `RING_BUFFER_BUILD_TESTS` (default OFF)
|
||||||
|
build the test programs from the `test/` subdirectory
|
||||||
|
- `RING_BUFFER_FEATURE_DETECT` (default ON)
|
||||||
|
try to detect the values for the following feature options automatically
|
||||||
|
- `RING_BUFFER_NOEXCEPT` (default OFF)
|
||||||
|
enable use of the `noexcept(bool-expr)` conditional noexcept operator (needs C++11)
|
||||||
|
- `RING_BUFFER_CONSTEXPR` (default OFF)
|
||||||
|
make all member functions of `basic_ring_buffer` and its iterators `constexpr` (needs C++14)
|
||||||
|
- `RING_BUFFER_CONSTEXPR_DESTRUCTORS` (default OFF)
|
||||||
|
make the destructors of `basic_ring_buffer` and its iterators explicitly `constexpr` (needs C++20)
|
||||||
|
|
||||||
|
The last 3 options set preprocessor defines with the same name when enabled.
|
||||||
|
|
||||||
|
## Preprocessor defines
|
||||||
|
|
||||||
|
- `RING_BUFFER_NOEXCEPT` (default OFF)
|
||||||
|
enable use of the `noexcept(bool-expr)` conditional noexcept operator (needs C++11)
|
||||||
|
- `RING_BUFFER_CONSTEXPR` (default OFF)
|
||||||
|
make all member functions of `basic_ring_buffer` and its iterators `constexpr` (needs C++14)
|
||||||
|
- `RING_BUFFER_CONSTEXPR_DESTRUCTORS` (default OFF)
|
||||||
|
make the destructors of `basic_ring_buffer` and its iterators explicitly `constexpr` (needs C++20)
|
Reference in New Issue
Block a user