Static argument optimization
Janderson
ask at me.com
Mon Oct 6 18:32:07 PDT 2008
Vladimir Panteleev wrote:
> Hello,
>
> Often I encounter cases where I have a function taking some arguments,
> and I'd like for the compiler to generate separate code for the function
> when some of the arguments are known at compile time. For example,
> consider this function:
>
> int pow(int n, int power)
> {
> return power==0 ? 1 : n*pow(n, power-1);
> }
>
> I am looking for a way to make the function work at runtime, while
> pow(n, 3) to be inlined as n*n*n, and pow(2, 3) to be precalculated as
> 8. Is it possible to do this with some template trickery without having
> to write three versions of the function? I know macros should be able to
> do this in theory...
>
Walter has talked about adding the keyword static in the past to
generate templates ie:
int pow(static int n, static int power)
{
}
I'm not sure if all the params needed to be constant for it to generate
a template. I can't see why your proposal wouldn't work with this.
-Joel
More information about the Digitalmars-d
mailing list