Module name compile time constant?

Spacen Jasset spacenjasset at yahoo.co.uk
Tue Apr 15 08:56:32 PDT 2008


davidl wrote:
> 在 Tue, 15 Apr 2008 15:12:13 +0800,Janice Caron 
> <caron800 at googlemail.com> 写道:
> 
>> On 15/04/2008, davidl <davidl at 126.com> wrote:
>>>  I want some magic of module.name to get the current module name in 
>>> compile
>>> time string form.
>>
>> Yeah, basically you want to add __MODULE__ to the list of "special 
>> tokens" in
>> http://digitalmars.com/d/2.0/lex.html
>>
>> I think it would be easy for Walter to add, and I don't think it's
>> particularly controversial, so why not just go ahead and add an
>> enhancement request to Bugzilla.
> 
> I'm looking for a cleaner solution.
> __SPEC_TOKEN__ for me looks like a hack.
> 
> and it's not so well defined if my app doesn't have a module declaration 
> section?
> should the compiler stop the compilation?
> 
> 
__MODULE__ seems reasonable to me. It's in line with __FILE__ and 
__LINE__ and __FUNC__ (which seems absent, from dmd 1 anyway)

If you have no module definition, then presumably it could be "" or 
whatever module the compiler considers it is when that happens according 
to the current rules.

They look a bit like C preprocessor type macros, but really they aren't 
so much, at any rate there is none of the problems you get with C style 
macros and so they don't seem like a hack to me.

What alternative did you have in mind?



More information about the Digitalmars-d mailing list