Version very simple?

simendsjo simen.endsjo at pandavre.com
Sun Feb 27 08:52:59 PST 2011


On 27.02.2011 17:27, Lars T. Kyllingstad wrote:
> On Sun, 27 Feb 2011 15:52:01 +0100, simendsjo wrote:
>
>> I'm having some problems grokking version.
>>
>> How would I translate this simple C macro? #if !defined(IDENT) ||
>> !defined(IDENT2)
>>
>> I've tried the following:
>> version(!IDENT)
>>   >  identifier or integer expected, not !
>>
>> !version(IDENT)
>>   >  Declaration expected, not '!'
>>
>> version(IDENT || IDENT2)
>>   >  found '||' when expecting ')'
>>
>> version(IDENT) || version(IDENT2)
>>   >  Declaration expected, not '||'
>>
>>
>> This is just plain ugly:
>> version(IDENT) {
>> } else {
>>     version = NOT_IDENT_OR_IDENT2;
>> }
>>
>> version(IDENT2) {
>> } else {
>>     version = NOT_IDENT_OR_IDENT2;
>> }
>>
>> version(NOT_IDENT_OR_IDENT2) {
>>     // Finally
>> }
>
> Here's one nice solution to your problem:
>
> http://www.digitalmars.com/d/archives/digitalmars/D/
> Improving_version_..._119799.html#N119846
>
> Basically, he defines an isVersion() template which is true if the
> current version is enabled, and false if not.
>
> -Lars


Pretty nice, but I don't like magic strings. I'd rather use my more 
clunky version.


More information about the Digitalmars-d-learn mailing list