I was reading the difference between direct-initialization and copy-initialization (§8.5/12):
T x(a); //direct-initialization T y = a; //copy-initialization
This is an optimization by the compiler.
In evaluating: A a = 10; instead of:
A a = 10;
first constructing a temporary object through A(int);
A(int)
constructing a through the copy constructor and passing in the temporary;
a
the compiler will simply construct a using A(int).