On Tuesday, 4 September 2012 at 09:24:26 UTC, Don Clugston wrote:
On 03/09/12 23:48, Chris Nicholson-Sauls wrote:
I reiterate my impression that magical __FILE__ and
__LINE__ should be provided by some other means.
It was a special-case hack to fix a special-case need. It was
extremely easy to implement (about 2 hours work) and has been
very successful in fixing that need. Everything else that
anyone has talked about is at least ten times as complicated,
and doesn't seem to offer significant advantages.
It's really easy to come up with over-engineered solutions to
these sorts of things.
How difficult would hidden params, triggered by usage, be? Ie:
my function makes use of __CALL_FILE and __CALL_LINE variables by
name, therefore they are tacked on (as const, presumably) and
always passed, thanks to diabolic compiler sorcery. The current
solution is fine in a majority of cases, at least so far, but
there are going to be moments like what the OP had, and these
moments are discouraging especially to newcomers.
I won't pretend to know if it would be easy or not; you're a heck
of a lot more familiar with the compiler's code than I am. But
it certainly seems straightforward.