```
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);
}
```

Reply via email to