Me and a colleague of mine had a debate about wether
Pt pt;
and
Pt pt = Pt();
are equivalent. I suspected that in the second case copy assignment could be called, but as it turns out it isn't the case.
As we ran our little experiment I decided to test a weird bit, that my colleague thought wouldn't even compile:
//here the compiler calls a copy constructor and doesn't call the default constructor prior to that
// O_o
Pt pt = pt;
Here is a working sample: http://ideone.com/XmJSz7
So, the question is - what goes on in:
Pt pt = pt;
Pt pt = Pt()
, I updated my answer. – Mckenna