This code fails at runtime in the copy constructor. But the compiler (MSVS2008) issues no warnings.
Could you explain (preferably cite the standard) whether this
Your code is not calling the standard constructor but the copy constructor, so you are accessing an uninitialized pointer.