[proposal] version statements with multiple arguments.

1100110 0b1100110 at gmail.com
Mon Oct 22 21:27:18 PDT 2012


On Mon, 22 Oct 2012 22:31:43 -0500, Jesse Phillips  
<jessekphillips+D at gmail.com> wrote:

> On Tuesday, 23 October 2012 at 03:22:08 UTC, 1100110 wrote:
>> So I guess in the end I am proposing a change.
>> A change that I cannot see breaking backwards compatibility while also  
>> shortening code duplication.
>> It also seems much more 'intuitive' to me.
>>
>> version(Windows) version(DigitalMars) {}
>> made me think twice to make sure I knew what it was doing.
>>
>> What do you guys think?  If this was implemented, how could it break  
>> backwards compatibility?
>> Is something like this worth a change?
>> Are there any drawbacks to this idea?
>
> This "issue" comes once in a while. The suggested solution:
> [snip]
>
> Not necessarily more concise but it can add description to what the  
> actual version being created.

That is true, and I do recall that version = something; now that I think  
about it.

It just seems to me that version statements are essentially booleans, and  
could be easily rewritten as:
static if(true || false || false) { } by the compiler, similar to how (I  
*think*) certain binary operators are rewritten.
(I'm just going by what I hear, I'm not really a compiler kinda guy...)

It would make sense to me to be able to use boolean operators on what is  
essentially
a true/false statement.

I'd be willing to see if I can hack together support for it, as a proof of  
concept,
but I wanted to see if it would be blatantly shot down first.

So... What I'd really like to know is: Would *you* welcome such a change?
-- 
Using Opera's revolutionary email client: http://www.opera.com/mail/


More information about the Digitalmars-d mailing list