On Tuesday, 29 January 2013 at 11:26:00 UTC, Timon Gehr wrote:

I'd call it @constfold.

That's a good name. Descriptive and short.

I'm not going to try to push this suggestion any harder, since it got no support on the first time I tried it. But I'd like to mention just one thing that came to mind:

The generic solution without any extra function attributes:

template ct(alias expr)
{
    enum ct = expr;
}

Literal of type TypeWithNonTrivialConstructor:

ct!(TypeWithNonTrivialConstructor(2.5, 7.5))

The above solution throws the responsibility of the correct use of TypeWithNonTrivialConstructor on the end-user. Whereas a @constfold attribute on the constructor of TypeWithNonTrivialConstructor automates the correct behaviour.

Reply via email to