ようするに
A a1
A a2(a1);
assert(a1 == a2); // 要求通りならアサートは絶対出ない
A a3;
a3 = a1; assert(a1 == a3); // 要求通りでもアサートがでるかも・・・
ってことかな?混乱してきた