== Quote from Andrei Alexandrescu ([email protected])'s article > FWIW we've been talking a long time ago about a simple lowering - if the > last argument to a function is a delegate, allow moving the delegate's > body outside of the function: > fun(a, b, c) { body } > | > V > fun((a, b, c) { body });
I suppose that any method which works is fine. The advantage with a more preprocessor-like methodology is that it doesn't incur two function calls. Shipping delegates around to functions is nice for self-modifying code, but that's overkill for this sort of functionality. It has a fairly clear use for making complex thread synchronization look prettier, but if you're doing that sort of fancy footwork to begin with, then speed is probably a driving motive (or you're making code that's more complex than it needs to be. ;) ) But again, like I said, any method which works is probably fine. And possibly DMD is good at inlining such things. -Chris
