On Wednesday, 7 March 2018 at 00:11:33 UTC, Timon Gehr wrote:
On 06.03.2018 19:49, Paolo Invernizzi wrote:


I simply don't understand why enforce or a custom check can't be used @safe code, if you want that behaviour.
...

I have explained why. UB is non-modular and you don't (want to) control all the code that you use.

As I've written, you should ask for debug versions of every closed source library that it's used in a project, it's always a win-only things to do.

Also, enforce cannot be disabled.

Because if you use it instead of assert, the enforce has just detected a bug, so it's just doing the sane thing to join that cases: stop the execution because the process is entering UB.

And no, keeping the check or introducing UB are not the only sensible options.

Just to understand, as I've already asked: do we aim at UB that guarantees no memory corruptions?

/Paolo


Reply via email to