You can create sum types in C and C++ with unions.
You need a union and a struct (to store the tag).
Important introduction to a thing that Haskellers often take for granted and forget to mention as one of the language’s virtues. :)
Yes, it would have been nice if the article went into detail on why what C and C++ have is not as nice.