__FILE__ and __LINE__ 'forwarding'

Lutger lutger.blijdestijn at gmail.com
Fri Sep 22 07:19:58 PDT 2006


Lionello Lunesu wrote:
> #void test(int i=__LINE__) { printf("%i",i);}
> #void main() {
> #  test(); // prints 1
> #}
> 
> It would be really handy if the __LINE__ default parameter value would 
> be evaluated at the line containing the call. This way we can mimic 
> those C logging macros.
> 
> Is there currently any way to do this without writing __LINE__, __FUNC__ 
> on every call?
> 
> L.

Indeed, this would be nice if possible. For the function name, I think 
this can be done with Don Clugston's meta library, meta.nameof should do 
the trick:
"Given any D symbol (class, template, function, module name, or 
non-local variable) or any D type, convert it to a compile-time string 
literal, optionally containing the fully qualified and decorated name."



More information about the Digitalmars-d-learn mailing list