Preguntas etiquetadas con overload-resolution


5
¿Por qué agregar un método agregaría una llamada ambigua, si no estaría involucrado en la ambigüedad?
Tengo esta clase public class Overloaded { public void ComplexOverloadResolution(params string[] something) { Console.WriteLine("Normal Winner"); } public void ComplexOverloadResolution<M>(M something) { Console.WriteLine("Confused"); } } Si lo llamo así: var blah = new Overloaded(); blah.ComplexOverloadResolution("Which wins?"); Escribe Normal Winneren la consola. Pero, si agrego otro método: public void ComplexOverloadResolution(string something, object …



1
¿Por qué {} como argumento de función no conduce a la ambigüedad?
Considera este código: #include <vector> #include <iostream> enum class A { X, Y }; struct Test { Test(const std::vector<double>&, const std::vector<int>& = {}, A = A::X) { std::cout << "vector overload" << std::endl; } Test(const std::vector<double>&, int, A = A::X) { std::cout << "int overload" << std::endl; } }; int …

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.