Why doesn't std.variant.visit automatically call the provided delegates?
Nemanja Boric via Digitalmars-d
digitalmars-d at puremagic.com
Sat Nov 5 01:27:49 PDT 2016
```
import std.variant;
import std.stdio;
import std.exception;
void main()
{
Algebraic!(int, string) variant;
variant = 10;
int x = 0;
// Functions throws - uncomment and see
// variant.tryVisit!( (string s) => enforce(false),
// (int i) => enforce(false))();
// This - does nothing
variant.visit!( (string s) => { enforce(false); x = 2; },
(int i) => { enforce(false); x = 3;
})();
writeln("x = ", x);
// This works as expected
variant.visit!( (string s) => { x = 2; }(),
(int i) => { x = 3; }())();
writeln("x = ", x);
}
```
More information about the Digitalmars-d
mailing list