variant Reimplementation of std::variant visitation mechanism converting constructors SFINAE-friendliness (preserving triviality, copy-ability, etc) Compilation Requires C++20 and a modern compiler that supports concepts (tested with last versions of gcc and clang)