On 6 April 2012 17:53, Timon Gehr <timon.g...@gmx.ch> wrote:

> On 04/06/2012 04:23 PM, Steven Schveighoffer wrote:
>
>> Why should we be restricted to only structs? Or any type for that matter?
>>
>>
> A restriction to only structs is not a restriction because structs can
> have arbitrary field types.
>
>
>  The benefit to using CTFE functions is that the compiler already knows
>> how to deal with them at compile-time. i.e. less work to make the
>> compiler implement this.
>>
>>
> It is exactly the same amount of work because CTFE is able to execute
> struct constructors.
>

The only real difference I see, is at the end of the day, the one level of
indirection (the function call) allows you to create an attribute with a
different name than struct that defines it. Otherwise they would seem to be
functionally equivalent.
Chances are, the creator function would just execute the struct's
constructor internally anyway. But maybe the function approach has an
effect on the simplicity of the expression for a simple attribute, like a
single bool?
I suppose a single bool attribute wouldn't work so well declared the
constructor way, it really does need the name it would inherit from the
creator function...

Reply via email to