4 ms·
Heh, interesting. So I guess it's also possible that "b && !b" evaluates to true... which is probably more ammo for C detractors.
by AshleysBrain 14y ago
Heh, interesting. So I guess it's also possible that "b && !b" evaluates to true... which is probably more ammo for C detractors.
- simias 14y agoThat one does not work with g++ and actually does not produce a warning with -Wall without optimisations. It makes me wonder if that's actually undefined behaviour in C++, because unlike the example in the fine article this time the behaviour of the program does not depend on the (undefined) value of b. Or maybe it's just g++ being clever.
- JamesLeonis 14y agoThere is plenty of undefined behavior in C++ [1]. It is important to understand that these aren't bugs in a particular compiler, but deliberate definitions in the standard itself to give compiler writers leeway in their implementations. Amusingly, that means "undefined behavior" is explicitly defined in the standard. http://stackoverflow.com/a/367662/712512 http://stackoverflow.com/a/367662/712512
- kd0amg 14y agoOn the other hand, a strength reduction pass might just collapse it to false.