compile-time function in a class?
janderson
askme at me.com
Tue Mar 20 08:51:52 PDT 2007
Charlie wrote:
> >> You don't need to mark compile-time functions as static. Functions
> are only evaluated at compile-time when they can't possibly be evaluated
> at run-time (such as in mixin declarations/statements/expressions or as
> initializers of static or global variables). E.g.:
>
> I love compile time functions, but saying 'are only evaluated when they
> cant be at run-time' leaves allot to be desired in terms of ease of use.
> How do i know for sure its evaluated at run time ? I could use a
> pragma , but it seems like we have to follow a very thin line to get
> there, it would be extremely nice if we had someway of explicitly
> saying 'call this at compile time'. @exampleFunc(); maybe ? That way
> instead of guessing we're doing it at compile-time, we could be certain,
> and also let the programmer know whats going on , instead of him having
> to trace the same thin line.
>
> Charlie
>
>
>
> Tyler Knott wrote:
>> You don't need to mark compile-time functions as static.
>
>
>>
>> char[] example = exampleFunc(); //This is global, so exampleFunc is
>> executed at compile-time
>>
>> void func()
>> {
>> char[] example = exampleFunc(); //Not global or static, so run-time
>> }
One way to test if a function works at compile time would be to wrap it
in a mixin.
More information about the Digitalmars-d
mailing list