Sum-type/Variant/Tagge Union implementation in C++ associated to blog post