【发布时间】:2011-04-20 13:31:43
【问题描述】:
我有一个函数(和一个构造函数)应该能够接受整数和浮点值。事实上,我希望它采用int64_t 或long double,所以我想要的是,
class Foo {
public:
Foo(int64_t value=0);
Foo(long double value);
};
但是,如果我这样做并尝试Foo f = 1;,编译器会抱怨从int 到Foo 的转换不明确。好的,但是如果我将第一个构造函数更改为采用int32_t,则没有这种歧义。谁能给我解释一下为什么会这样。
【问题讨论】:
标签: c++ floating-point integer ambiguity