2 ms·
Until very recently, all of the C++ code I wrote was in the 1998 style or in the 2014 style. Since 2017, there is std::variant, which is a sum type template th
by MathMonkeyMan 4y ago
Until very recently, all of the C++ code I wrote was in the 1998 style or in the 2014 style.
Since 2017, there is std::variant, which is a sum type template that _technically_ allows for language-level exhaustiveness checking via std::visit. It's not pretty, but it gets you there without requiring compiler support.
Rust's version looks way better.
- otabdeveloper4 4y agoboost::variant has been around forever. Most modern C++ codebases do compile-time polymorphism via templates, though. std::variant is a niche use for things like serialization, when you need to make type choices at runtime.
- chippiewill 4y agoI was really excited for `std::variant`, when I actually got it I was seriously disappointed. It's just a pain to use because of how much template magic is used.