3
我有一个函数(和一个构造函数)应该能够采取整数和浮点值。事实上,我希望它采取int64_t
或long double
,所以我想的是,浮点和整数模糊
class Foo {
public:
Foo(int64_t value=0);
Foo(long double value);
};
但如果我这样做,并尝试Foo f = 1;
编译器抱怨从int
到Foo
是暧昧的转换。好吧,但如果我改变第一个构造函数采取int32_t
没有这样的歧义。任何人都可以向我解释为什么会出现这种情况。
啊,是的,谢谢。说得通。我有点惊讶,尽管编译器不认为'int64_t'与'int'比'double'更接近匹配。 (我猜是因为转换是一种转换,这就是它所担心的(?)) – tjm 2010-10-03 20:10:23