On Tuesday, 4 September 2012 at 11:28:23 UTC, Don Clugston wrote:
I don't know how that could be done. You need to know the function signature whenever you call the function. If you make the signature dependent on the function body, it cannot work unless you have the source code of the function. The compiler is able to add hidden variables for things like 'this' because it can work out if it is required just by looking at the types involved in the function declaration. But in this case, it can't get it from the signature.

The default argument method we are currently using is a nice trick, because even though default arguments aren't part of the function type, the compiler still sees them in the function signature, so it knows to do a bit of magic.

It's also easy to get nasty forward reference errors when you do that sort of thing.


Fair enough; I hadn't considered the case of having only the signature to go by. Maybe an @attribute for it? ;) Okay okay, I give. For now there's making file/line template params, which is fine for something like a custom assertion meant for debug builds, although horrid for release builds.

Reply via email to