You have std::variant and std::visit. https://www.bfilipek.com/2018/09/visit-variants.html
Or you can use a library: https://github.com/mpark/patterns
> You have std::variant and std::visit. https://www.bfilipek.com/2018/09/visit-variants.html
Which isn't a true sum type because it doesn't nest properly.
> Or you can use a library: https://github.com/mpark/patterns
Interesting; proper pattern-matching is nice, but the lack of type safety is still a major issue.
It's not really practical because C++ has no true sum types. You can emulate them with a Java-style visitor pattern but that carries an immense code overhead.