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.