simple static if / traits question...

Patrick Schluter via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Feb 23 12:18:56 PST 2017


On Thursday, 23 February 2017 at 18:35:29 UTC, Profile Anaysis 
wrote:
>>> [...]
>>
>> option 1 is the one I was shooting for. does the static if 
>> (audio) just check for the existence of audio, or does it also 
>> check to see if audio is true as well?
>>
>
> Yes, but it checks at compile time. So the code will be 
> evaluated by the compiler and if audio is true, it will only 
> compile in the code in the if block.
>
> e.g,
>
>     static if (audio) { do something }
>
> will be identical, in the binary, to
>
>     do something
>
> if audio is true.
>
> The static if is an if statement and works like any ordinary if 
> statement, but since you are using static(known at compile 
> time) information then static if can actually be 
> computed/evaluated at compile time(since all the inputs are 
> know and cannot be changed)

Or to make it simple

      static if (audio) { do somethng }

is the same thing as

      #if audio
        do something
      #endif

in C and C++.


More information about the Digitalmars-d-learn mailing list