On Thursday, 12 June 2014 at 08:42:49 UTC, Dmitry Olshansky wrote:
11-Jun-2014 22:03, Atila Neves пишет:
On Tuesday, 10 June 2014 at 19:36:57 UTC, bearophile wrote:
At about 40.42 in the "Thoughts on static regex" there is written "even compile-time printf would be awesome". There is a patch about
__ctWrite in GitHug, it should be fixed and merged.


I wish I'd taken the mic at the end, and 2 days later Adam D. Ruppe said what I was thinking of saying: unit test and debug the CTFE function at runtime and then use it at compile-time when it's ready for production.

Yes, that's a starting point - a function working at R-T.

Yes, Dmitry brought up compiler bugs. But if you write a compile-time UT and it fails, you'll know it wasn't because of your own code because the
run-time ones still pass.

It doesn't help that it's not your fault :)
And with a bit of __ctfe's to workaround compiler bugs you won't be so sure of your code anymore.

Maybe there's still a place for something more than pragma msg, but I'd
definitely advocate for the above at least in the beginning. If
anything, easier ways to write compile-time UTs would be, to me,
preferable to a compile-time printf.

There is nice assertCTFEable written by Kenji in Phobos. I think it's our private magic for now but I see no reason not to expose it somewhere.


It helps; you won't lose time looking at your code and wondering. I thought of the __cfte problem though: that would mean different code paths and what I said wouldn't be valid anymore.


Reply via email to