如何在C++中解决这两个函数的调用模糊问题?
Color(int, int, int)
Color(float, float, float)
当值是硬编码,例如Color(1, 2, 3)
,或者当它们是变量Color(r, g, b)
时,它们都含糊不清。为什么编译器不能根据数据类型解析变量形式的值?
编辑: 抱歉,太多的C++让我忘记了还有其他语言。 而且没有太多的“完整代码”。
float x, y, z;
int r, g, b;
Color(1, 2, 3); // ambiguous
Color(1.0, 2.0, 3.0); // ambiguous
Color(r, g, b); // ambiguous <--- this one is a real pain
Color((int)r, (int)g, (int)b); // ambiguous
Color(x, y, z); //OK
Color(1u, 2u, 3u); //OK
Color(1.0f, 2.0f, 3.0f); //OK
Color(1, 2, 3)
不会有歧义,但Color(1., 2., 3.)
会有。请展示完整代码,否则没有人能帮助你。 - Johannes Schaub - litb