faking a C logging macro
clayasaurus
clayasaurus at gmail.com
Thu Apr 20 15:01:00 PDT 2006
According to the D change log @ version .116 this was included.
"Added __FILE__, __LINE__, __DATE__, __TIME__, __TIMESTAMP__."
Maybe ask Walter to add __FUNCTION__ ?
You might want to check out build's preprocessor stuff as well.
http://www.dsource.org/forums/viewtopic.php?t=624
BCS wrote:
> 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