faking a C logging macro
    BCS 
    BCS_member at pathlink.com
       
    Thu Apr 20 14:45:10 PDT 2006
    
    
  
Tydr Schnubbis wrote:
> Can I get something like this in D, using mixins or whatever?
> 
> #define log(s) logprintf(__FILE__ ": " __FUNCTION__ ": %s", s)
sed "/log\(/logprintf(__FILE__ `: ` __FUNCTION__ `: %s`, /" in.d -o out.d
???
No but seriously folks, I have wanted something like this a few times myself. 
Particularly, some way to get the __FILE__, etc. set of constants of the line 
where a template is instanced. Something like the following would be great.
template log(
   char[] s,
   char[] fi = __FILE__,
   int li = __LINE__,
   char[] fn = __FUNCTION__)  // const defaults come from called location
{
	const char[] log = ...
}
main.d
int i;
void main()
{
	pragma(msg, log!("this is broken!!!");
}
compile time output:
main.d:4 this is broken!!!
    
    
More information about the Digitalmars-d-learn
mailing list