Thread overview | ||||||
---|---|---|---|---|---|---|
|
November 18, 2018 Neater enum + version | ||||
---|---|---|---|---|
| ||||
Currently I have something like version (Posix) { enum foo = "bar"; } else { enum foo = "baz"; } Is there anyway to make it "neater"? Maybe something in one line: enum foo = version (Posix) { "posix" } : { "other" } ; |
November 18, 2018 Re: Neater enum + version | ||||
---|---|---|---|---|
| ||||
Posted in reply to Vladimirs Nordholm | On Sun, 18 Nov 2018 17:47:07 +0000, Vladimirs Nordholm wrote:
> Is there anyway to make it "neater"? Maybe something in one line:
>
> enum foo = version (Posix) { "posix" } : { "other" } ;
If you're doing it often:
T ifPosix(T)(T a, T b)
{
version (Posix) return a; else return b;
}
enum foo = ifPosix("posix", "other");
If it's a one-off thing, though, there's not much you can do.
|
November 18, 2018 Re: Neater enum + version | ||||
---|---|---|---|---|
| ||||
Posted in reply to Neia Neutuladh | On Sunday, 18 November 2018 at 17:52:21 UTC, Neia Neutuladh wrote:
> On Sun, 18 Nov 2018 17:47:07 +0000, Vladimirs Nordholm wrote:
>> Is there anyway to make it "neater"? Maybe something in one line:
>>
>> enum foo = version (Posix) { "posix" } : { "other" } ;
>
> If you're doing it often:
>
> T ifPosix(T)(T a, T b)
> {
> version (Posix) return a; else return b;
> }
> enum foo = ifPosix("posix", "other");
>
> If it's a one-off thing, though, there's not much you can do.
Ah. Thank you for the example, might use that some other time.
Thanks :)
|
November 18, 2018 Re: Neater enum + version | ||||
---|---|---|---|---|
| ||||
Posted in reply to Neia Neutuladh | On 2018-11-18 18:52, Neia Neutuladh wrote: > On Sun, 18 Nov 2018 17:47:07 +0000, Vladimirs Nordholm wrote: >> Is there anyway to make it "neater"? Maybe something in one line: >> >> enum foo = version (Posix) { "posix" } : { "other" } ; > > If you're doing it often: > > T ifPosix(T)(T a, T b) > { > version (Posix) return a; else return b; > } > enum foo = ifPosix("posix", "other"); > > If it's a one-off thing, though, there's not much you can do. This can be generalized by passing in the version identifier as a string and do a string mixin. -- /Jacob Carlborg |
Copyright © 1999-2021 by the D Language Foundation