[expr.static.cast]/4(重点是我的):
如果存在从e到T的隐式转换序列([over.best.ics]),或者如果有,则表达式e可以显式转换为类型T. 直接初始化([dcl.init])的重载决策 来自e的类型T的对象或引用将发现至少一个可行 功能([over.match.viable])。如果T是参考类型,则效果 与执行声明和初始化
相同T t(e);
对于一些发明的临时变量t([dcl.init])然后使用 作为转换结果的临时变量。否则, 结果对象是从e直接初始化的。 [注意:转换是 尝试将类类型的表达式转换为时,形式错误 无法访问或模糊的基类。 - 结束说明]
对于T
类型的对象的重载分辨率,术语一个可行的功能是指类T
的构造函数还是转换函数在类中,e
是一个对象。