Template visit
Dispatches the value contained on a TaggedUnion
or TaggedAlgebraic
to a
set of visitors.
template visit(VISITORS...)
;
A visitor can have one of three forms:
- function or delegate taking a single typed parameter
- function or delegate taking no parameters
- function or delegate template taking any single parameter
....
Contained Functions
Name | Description |
---|---|
visit | |
visit |
Example
static if (__VERSION__ >= 2081) {
import std .conv : to;
union U {
int number;
string text;
}
alias TU = TaggedUnion!U;
auto tu = TU .number(42);
tu .visit!(
(int n) { assert(n == 42); },
(string s) { assert(false); }
);
assert(tu .visit!((v) => to!int(v)) == 42);
tu .setText("43");
assert(tu .visit!((v) => to!int(v)) == 43);
}