4 ms·
There were proposals for optimizing this kind of stuff for C++ in particular for error handling, like: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019
by planede 2y ago
There were proposals for optimizing this kind of stuff for C++ in particular for error handling, like:
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0709r4.pdf https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p07...
> Throwing such values behaves as-if the function returned union{R;E;}+bool where on success the function returns the normal return value R and on error the function returns the error value type E, both in the same return channel including using the same registers. The discriminant can use an unused CPU flag or a register
- mananaysiempre 2y agoIBM BIOS and MS DOS calls used the carry flag as a boolean return or error indicator (the 8086 has instructions for manually setting and resetting it). I don’t think people do that these days except in manually-coded assembly, unfortunately (which the relevant parts of both BIOS and DOS also were of course).