C++ でこれら 2 つのあいまいな呼び出しを解決するにはどうすればよいですか?
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