Re: Undefined behaviour [was Re: The D Programming Language]
Ian McCulloch wrote:
Al wrote:
Java World:
+-------------+
| Logic Bugs |
| |
+-------------+
C++ World:
+-------------+-------------+-------------+-------------+
| Logic Bugs | Pointer | Reference | Threading |
| | Bugs | Bugs | Bugs |
+-------------+-------------+-------------+-------------+
| Sequencing | Misc. | Other UB | Nasal |
| Bugs | Memory Bugs | Bugs | Demons ... |
+-------------+-------------+-------------+-------------+
Aside from the fact that these are all special cases of 'Logic Bugs', are
you seriously suggesting that Java never suffers from threading or
sequencing bugs?
I think he was referring to threading bugs as threading bugs that
corrupt the program; and to sequencing bugs as f(auto_ptr, auto_ptr).
Also, in what sense does Java avoid pointer/reference bugs? My
understanding was that you get something like a null reference exeception.
Given the horror stories elsewhere on this thread of parts of the Java
standard library silently eating exceptions, I would definitely prefer the
undefined behaviour in C++ as easier to debug in practice, because every
C++ implementation I know of specifically traps null pointer dereferences,
and at least for the platforms I use, excellent tools are available to
diagnose practially all other cases of runaway pointers.
That's a good point. Truth be told, any library could just as well
insert a manual test against the pointer and do nothing if the pointer
is null :o).
Andrei
--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]