Take the following code...
Code:
Base b1;
Base b2 = b1;
Is it merely a compiler optimization that causes the copy constructor to get called vice the copy assignment operator? Or, is this a hard and fast rule? Or, is it merely the tact that compiler writers have taken when such a construct is written? And, could this be different with different compilers?