This is my hobby project, that I have started because I wished to deeply explore C++ metaprogramming. I have implemented a lot of cool metaprogramming stuff, which actually may seem as a "black magic".
Here you can see such algorithms as lexicographic comparsion, generation, conditional removing and even sorting. And it all is performed at compile-time with types, not material values. And it all is implemented using pure C++ 11 standard.
You can read the documentation of a project, almost all features are documented.
git clone https://github.com/edKotinsky/type_pack.git
cmake -S . -B build
cmake --build build
cmake -S . -B build -D TYPE_PACK_TESTING=ON
cmake --build build
cmake -S . -B build -D TYPE_PACK_DOC=ON
cmake --build build