f(x) 中的 x 是 lvalue expression,但是实施隐式类型转换会让它变为 rvalue expression【例如 (int) x,这是一个 lvalue 还是 rvalue expression 呢?】,而隐式类型转换不能发生在同类型转换上,因此出现 int 匹配 float,float 匹配 int 的错觉。事实上将 float 改为 double 等也是一样的。代码要将 double 版本注释掉,否则会导致重载歧义,如 int 能隐式转换为 float 或 double。

相关推荐

不愿透露姓名的神秘牛友
10-18 23:56
已编辑
好未来 产品经理 15*15 硕士211
点赞 评论 收藏
分享
牛客网
牛客企业服务