Optional Parameters

std::optional

Declare optional parameter:

#include <optional>
std::optional<int> opt_int;

Set value:

opt_int = 3;

Check if it has a value:

opt_int.has_value();

Get value:

opt_int.value();
// Throws std::bad_optional_access if value not present

Get value, and set a default if value not present:

opt_int.value_or(0);

Reset optional parameter to empty:

opt_int.reset();
// or
opt_int = std::nullopt;

Conditional / Ternary Operator

// Calls `Process()` on member_ if member_ has
// a value, otherwise returns false.
return member_ ? member_.value().Process() : false;

Last updated