When objects of class type are direct-initialized ([dcl.init]),
copy-initialized from an expression of the same or a
derived class type ([dcl.init]),
or default-initialized ([dcl.init]),
overload resolution selects the constructor.
For direct-initialization or default-initialization
that is not in the context of copy-initialization, the
candidate functions are
all the constructors of the class of the object being
initialized.
For copy-initialization, the candidate functions are all
the converting constructors ([class.conv.ctor]) of that
class.