optional
std::optional<int> opt; // Initialized to empty (no value)std::optional<int> opt1 = 10; // Initialized with value 10std::optional<int> opt2(opt1); // Copy the value from opt1std::optional<int> opt3(std::move(opt2)); // Move the value from opt2opt = 20; // Assigns the value 20 to optint val = *opt; // Dereferences to get the valueif (opt) { // Checks if opt has a value
// Execute code if opt has a value
}if (!opt) { // Checks if opt is empty
// Execute code if opt is empty
}