enum and static if
ketmar via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Mar 11 10:19:20 PDT 2015
On Wed, 11 Mar 2015 18:17:38 +0100, Artur Skawina via Digitalmars-d-learn
wrote:
> On 03/11/15 15:41, ketmar via Digitalmars-d-learn wrote:
>> On Wed, 11 Mar 2015 14:36:07 +0000, wobbles wrote:
>>
>>> On Wednesday, 11 March 2015 at 14:34:32 UTC, ketmar wrote:
>>>> On Wed, 11 Mar 2015 13:48:45 +0000, Namespace wrote:
>>>>
>>>>> This code does not work:
>>>>>
>>>>> ----
>>>>> enum Test {
>>>>> Foo,
>>>>> static if (__VERSION__ >= 2067)
>>>>> Bar,
>>>>> }
>>>>> Quatz
>>>>> }
>>>>> ----
>>>>>
>>>>> Any chance that this could work?
>>>>
>>>> nope. `static if` is statement, so it works only where statement is
>>>> allowed. the same is true for `version`. this is by design.
>>>
>>> You can do something like static if (__VERSION__ >= 2067)
>>> enum Test{ ... }
>>> else
>>> enum Test{ ... }
>>>
>>> as a workaround?
>>
>> sure, but you have to copypaste the whole enum in both places. maybe
>> allowing `version` in enums worth a ER...
>
> mixin(`
> enum Test {
> Foo,`
> ~(__VERSION__>=2067?`
> Bar,`:``)
> ~` Quatz }`);
>
> artur
yes, it works. it also can be a participant in "ugly D code of the month"
contest. ;-)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-learn/attachments/20150311/a2c86aca/attachment.sig>
More information about the Digitalmars-d-learn
mailing list