variant
#include <variant>
struct Point { double x, y; };
using Circle = std::variant<Point, double>;
int main() {
Circle c1 = Point{1.0, 2.0};
Circle c2 = 10.0;
}#include <variant>
using OptionalInt = std::optional<int>;
int main() {
OptionalInt oi; // Initialized as null
oi = 10; // Set a value
if (oi) {
// Handle the value
} else {
// Handle null
}
}