Is there a way to make a function parameter accept only values that can be checked at compile time?
rempas
rempas at tutanota.com
Wed Dec 29 19:35:36 UTC 2021
On Wednesday, 29 December 2021 at 17:20:59 UTC, max haughton
wrote:
> This is handled by the compiler backend. The simplest way it
> can do this kind of optimization is by "inlining" the function.
>
> This is done by transplanting the function body into the place
> it's used. At this point the compiler simply sees "= 30 + 30"
> which it can trivially turn into "= 60" through something
> called constant-folding.
>
> The compiler can create new function bodies (like the temp one
> you introduce above) but this is a much more niche
> optimization. They favour inlining much more aggressively.
>
> I'm tempted to do a YouTube video of a D program being compiled
> all the way down the machine code, to show what the compiler
> does for you.
I didn't knew that compilers work like that. I thought that it
will treat the values normally like they were values that cannot
get computed at compile time even if you pass them as literals.
That's good to know
More information about the Digitalmars-d-learn
mailing list