constexpr and CTFE

so so at so.so
Tue Mar 29 14:51:33 PDT 2011


On Sun, 27 Mar 2011 17:50:00 +0300, bearophile <bearophileHUGS at lycos.com>  
wrote:

> This first question is mostly for D.learn, but below I show a partially  
> related link too, so I put both of them here.
>
> If you have library code, and the users of your library run one of your  
> functions at compile time, later if you change your function it may not  
> run at compile time any more. So isn't the quality of being able to run  
> at compile time part of the signature of the function?
>
> ---------------
>
> GCC 4.6 implements the C++0x constexpr. I've found a note about  
> constexpr, that touches the topic of logic const too, purity,  
> memoization:
>
> http://stackoverflow.com/questions/4748083/when-should-you-use-constexpr-capability-in-c0x/4750253#4750253
>
> Bye,
> bearophile

constexpr is a primitive utility comparing to D, and why it is designed  
the way it is in C++ is IMO nothing but to maintain backwards  
compatibility, not because it has anything over what we have here.

enum ctfe = fun();

If "fun" no longer ctfe'able compiler will output and error and that is  
all we need.
Why would a library designer care if his code will be executed at compile  
or runtime? No reason i can think of.


More information about the Digitalmars-d mailing list