我有一个函数(和一个构造函数)应该能够接受整数和浮点值。事实上,我希望它采用 aint64_t
或 a long double
,所以我想要的是,
class Foo {
public:
Foo(int64_t value=0);
Foo(long double value);
};
但是,如果我这样做并尝试Foo f = 1;
编译器会抱怨从模棱两可的int
转换Foo
。好的,但是如果我将第一个构造函数更改为采用 aint32_t
就没有这种歧义。谁能向我解释为什么会这样。