Evaluate an expression which results in a type matching the following customisation points, assigning
T to a decl called
var if successful, immediately returning
from the calling function if unsuccessful:
Default overloads for these customisation points are provided. See the recipe for supporting foreign input to
Hints are given to the compiler that the expression will be unsuccessful. If you expect success, you should use
Overridable: Not overridable.
for most of the mechanics.
var is initialised or assigned to the expression result’s
.assume_value() if available, else to its
.value(). This binds a reference possibly to the
T stored inside the bound result of the expression, but possibly also to a temporary emitted from the value observer function.
Legacy: Before Outcome v2.2,
var was always declared as an automatic rvalue ref. You can use the backwards compatibility macro
OUTCOME21_CO_TRY() if wish to retain the old behaviour.