I met a quiz saying that the code below is poorly formed because "It is not allowed to have a constructor whose first and only argument is not the default value parameter for the class type."
I could not understand this. Why are things like A(A a) : val (a.val) {} illegal? why is such a line in the standard? Is this because it will lead to ambiguity with the copy constructor?
source share