Type abstractor for polymorphic hierarchies.
BoundedPoly<Storage, Base, Mover = ...>
is a type abstractor for C++17.
It stores any no-throw movable polymorphic derived class of Base
that fits into size and alignment of Storage
.
It provides semantics similar to std::unique_ptr<Base>
and std::variant<...>
:
std::reference_wrapper<Base>
).unique_ptr
).unique_ptr
and unline variant
).variant
).variant
, but greater guarantee).This allows to use both polymorphic-semantics and stack-allocation (and so, cache-friendlyness).
This project uses CMake, which must be installed on your machine.
build
and open a console there.cmake ..
to create the project files.cmake --build .
to compile the project.There are now 5 executables:
ŧests/tests
which executes the tests.examples/shape
which executes the example.examples/benchmark/*
which are the three executables used for the benchmark.The documentation is compiled with Asciidoctor, which must be installed on your machine.
Then open a console in the root directory, and run:
asciidoctor -B . -R docs-src -D docs 'docs-src/**/*.adoc'