quote:It buys me the knowledge that I am not allowing insidious and dormant bugs to lie in my code.
well.. if i know how my compiler i use works, i know much bether why an error occurs and why not..
if i follow the standart but the compiler doesn''t, then i a) have bugs i can''t find where they are b) write faults i don''t find..
if i follow my compiler then all errors and crashes that exists are faults by ME and they i can find with no bigger problem (sometimes with hours of browsing my code, but oh well..)
in my compiler
object->Function();
is ObjectType::Function(object);
and
object.Function();
is ObjectType::Function(&object);
and because i know its that way i know what happens _IF_ there could be a 0->Function()..
then its not undefined behavior but simply no problem if this will never be dereferenced in the function ObjectType::Function or a crash if it will..
helps me more than knowing well.. it will behave undefined..
now the behaving _IS DEFINED_
that means i _CAN USE_ this as a feature, not as a bug..
one feature could be this:
bool Object::Valid() {
return this!=0;
}
this works assuming you create and release your objects correctly..
and the whole talk is just bullshit anyways..
you don''t care about the c++ standart
you don''t care about the abi standart
you care about WORKING code..
who needs c++?
ever worked on some console? you think their compilers are perfect? so you learn their standart.
stop beeing some stupid schoolboy crieing for standarts.. use what you have, and learn how it works.. don''t cry if it works stupid, be happy _THAT_ it works..
for pdugan
i think its some designfault in your code that resulted to call a 0-pointer-member function..
but without posting code we can''t help you much..
"take a look around" - limp bizkit
www.google.com