For direct-initialization or default-initialization
(including default-initialization in the context of copy-list-initialization),
the candidate functions are
all the constructors of the class of the object being
initialized
. Otherwise, the candidate functions are all
the converting constructors (
[class.conv.ctor]) of that
class
. For default-initialization in the context of copy-list-initialization,
if an explicit constructor is chosen, the initialization is ill-formed
.