digitalmars.D.learn - macro help
- J Thomas <jtd514 ameritech.net> Jul 27 2005
- "Ben Hinkle" <bhinkle mathworks.com> Jul 27 2005
- J Thomas <jtd514 ameritech.net> Jul 27 2005
- "Charles" <noone nowhere.com> Jul 27 2005
- Manfred Nowak <svv1999 hotmail.com> Jul 27 2005
hey im curious, are there any facilities in d for expanding macros beyond a mixin? for example what if i want to pass the source location into a function, for example: in c/c++ i could write a method: _someMethod( int line, string source ); then macro: #define someMethod() _someMethod( _LINE_, _FILE_ ); etc.. how would you do something like this in D ?
Jul 27 2005
"J Thomas" <jtd514 ameritech.net> wrote in message news:dc7clf$26s3$1 digitaldaemon.com...hey im curious, are there any facilities in d for expanding macros beyond a mixin? for example what if i want to pass the source location into a function, for example: in c/c++ i could write a method: _someMethod( int line, string source ); then macro: #define someMethod() _someMethod( _LINE_, _FILE_ ); etc.. how would you do something like this in D ?
You'd have to expand the macro by hand. In D __LINE__ and __FILE__ are substituted at the lexer level - so the rest of the parser never knows they exist.
Jul 27 2005
yah thats what i was thinking, bummer... i love D but im still not completely sold on the no preprocessor Ben Hinkle wrote:"J Thomas" <jtd514 ameritech.net> wrote in message news:dc7clf$26s3$1 digitaldaemon.com...hey im curious, are there any facilities in d for expanding macros beyond a mixin? for example what if i want to pass the source location into a function, for example: in c/c++ i could write a method: _someMethod( int line, string source ); then macro: #define someMethod() _someMethod( _LINE_, _FILE_ ); etc.. how would you do something like this in D ?
You'd have to expand the macro by hand. In D __LINE__ and __FILE__ are substituted at the lexer level - so the rest of the parser never knows they exist.
Jul 27 2005
You can always run it through a C++ pre-proccessor before compilation. Charlie "J Thomas" <jtd514 ameritech.net> wrote in message news:dc8hvi$d5c$1 digitaldaemon.com...yah thats what i was thinking, bummer... i love D but im still not completely sold on the no preprocessor Ben Hinkle wrote:"J Thomas" <jtd514 ameritech.net> wrote in message news:dc7clf$26s3$1 digitaldaemon.com...hey im curious, are there any facilities in d for expanding macros
a mixin? for example what if i want to pass the source location into a function, for example: in c/c++ i could write a method: _someMethod( int line, string source ); then macro: #define someMethod() _someMethod( _LINE_, _FILE_ ); etc.. how would you do something like this in D ?
You'd have to expand the macro by hand. In D __LINE__ and __FILE__ are substituted at the lexer level - so the rest of the parser never knows
exist.
Jul 27 2005
"Charles" <noone nowhere.com> wrote:You can always run it through a C++ pre-proccessor before compilation.
That is definitely not true, because pre-processor directives might be included in D-strings spanning several lines. -manfred
Jul 27 2005








Manfred Nowak <svv1999 hotmail.com>