C++17 cannot beat D surely
Stanislav Blinov via Digitalmars-d
digitalmars-d at puremagic.com
Sat Jun 3 13:29:04 PDT 2017
On Saturday, 3 June 2017 at 20:18:59 UTC, Basile B. wrote:
> On Saturday, 3 June 2017 at 18:45:56 UTC, Jacob Carlborg wrote:
>> On 2017-06-03 20:31, Russel Winder via Digitalmars-d wrote:
>>
>>> But is this sort guaranteed to happen at compile time rather
>>> than
>>> runtime?
>>
>> Yes. It's the context that decides if it occurs at compile
>> time or at runtime.
>>
>> Something declared as "static" or "enum" requires that the
>> value can be evaluated at compile time.
>
> Meeep. Wrong. The example is just wrong. 'static auto b = ...'
> is not a compile-time variable. It's just a variable that's
> like a global but declared within a function.
> Remember the singleton pattern using 'static Stuff instance'.
Meep. Wrong :)
Static initializers for static variables and constants are
evaluated at compile time, initializing them with runtime values
is a compile-time error.
Yes, you can't do a static assert on b. It's still initialized at
compile time though.
More information about the Digitalmars-d
mailing list