On 12/28/06, Nico Heinze <[EMAIL PROTECTED]> wrote:
--- In [email protected], waqas ahmed <[EMAIL PROTECTED]> wrote: > > What is the output of printf("%d") > What will happen if I say delete this? > Why preincrement operator is faster than postincrement? > What will happen if I allocate memory using "new" and free > it using "free" or allocate sing "calloc" and free it > using "delete"? <snip> These few excerpts are IMO perfect examples of questions everyone should simply refuse to answer. Why? 1) printf( "%d") invokes undefined behaviour. 2) I'm no C++ expert, but I think "delete this;" is illegal. Victor, Paul, Thomas, et al., am I right? If so, this is another perfectly bad example. If not, thanks for explaining and please forgive me my lack of knowledge.
In fact, it's legal to do so. Refer to: http://www.parashift.com/c++-faq-lite/freestore-mgmt.html#faq-16.15 3) It's simply not true on most modern CPUs that a pre-increment works
faster than a post-increment; the times when this was true is so long ago that it's not even worth recalling those times. This is an utterly useless question.
Well, I might be wrong here, but in the context of objects post increment can be slower than pre increment, because it needs to return the old state of the object in a temporary. -- Tamas Marki
