A constructor is used to initialize objects of its class type.
Because constructors do not have names, they are never found during
name lookup; however an explicit type conversion using the functional
notation ([expr.type.conv]) will cause a constructor to be called to
initialize an object.