retard wrote:
Sun, 07 Mar 2010 11:17:46 -0800, Walter Bright wrote:
retard wrote:
- Pattern matching (extension to enum/string/integer accepting switch)
Andrei and Sean have shown how to do that nicely with existing language
features.
Really? I'd really like to see how this is done.
foo( v,
(int i) { writeln("I saw an int ", i); },
(string s) { writeln("I saw a string ", s); ),
(Variant any) { writeln("I saw the default case ", any); }
);
foo is a variadic template which takes its first argument, v, and
attempts to match it with each delegate in turn. The first one that
matches is executed.
The matching is all done at compile time, of course, and the delegate
can be inlined.