On Friday, 8 December 2017 at 11:48:26 UTC, Nicholas Wilson wrote:
On Friday, 8 December 2017 at 10:46:20 UTC, John Colvin wrote:
On Thursday, 7 December 2017 at 01:21:11 UTC, Nicholas Wilson wrote:
[...]

How would such a thing interact with __traits(compiles, ...) and is-expressions?

VERY good question, I'm not sure.

From a purely practical perspective I'd say it should pass __traits(compiles, ...) and is-expressions purely because the kind of things that @ctfeonly would be used to cull from the produced binaries are used as is-expressions (e.g. the template lambda that determines isInputRange), although I expect it use to be rare. Ultimately I think this this feature would fall in to the category of "use responsibly" and it would be the responsibility of the user. They could always reflect on the presence of the attribute if need be.

From a point of consistency, probably however semantic constraints on things like LDC's magic attributes are done. I'm not sure how that is handled, but I suspect that __traits(compiles,...) does not take it into account. Johan?

I will think more on it.

Thanks.

You might want to wait until Dconf 2018 before you start implementing something. As it happens I am working on a way which will make ctfe-only functions possible (though that's s side-effect rather then the goal)

Reply via email to