|
|
|
|
|
by coder543
2173 days ago
|
|
> In C++, you get an error at runtime Your statement implies that errors for using invalid values are guaranteed at runtime as a feature of the language. That entire statement is incorrect. You really don't get errors... I literally pasted a link to a working, non-erroring example in the comment that you responded to. You clearly saw the code. Did you click "run"? You only get an error at runtime if you add "-fsanitize=undefined" (or "-fsanitize=enum"), where the compiler will inject some code into your binary. But the error doesn't actually stop code execution: it just prints a warning! Here is a link with the sanitizer enabled, and no warning is even printed for using an invalid value: https://godbolt.org/z/NA7FNQ So, not only is the sanitizer not even comprehensive, it's not actually a feature of C++. It's a best-effort feature from the compiler to add a non-standard runtime code sanitizer to your binary. Warnings for using invalid values are not guaranteed. |
|