Conditional Attributes

Marcel marcelpi97 at gmail.com
Fri Feb 21 16:24:57 UTC 2020


On Friday, 21 February 2020 at 01:41:21 UTC, Steven Schveighoffer 
wrote:
> On 2/18/20 12:11 PM, Marcel wrote:
>> Hello!
>> 
>> Say I have a struct where every member function can either be 
>> static or not depending on a template parameter. Is there a 
>> simple way to do this? Like, for example:
>> 
>> struct Foo(Condition)
>> {
>>     static if (Condition) static:
>> 
>>     void Bar() {}
>>     void Baz() {}
>> 
>> }
>
> Since D conditional compilation must always be a valid 
> declaration or statement, you cannot do something like this.
>
> The closest you can do is to use mixins, which means you have 
> to write everything inside strings.
>
> It has been proposed quite a few times to have a way to 
> enable/disable attributes based on a compile-time boolean. But 
> it's never come close to getting included.
>
> -Steve

That's a shame...


More information about the Digitalmars-d-learn mailing list