Resultados de la búsqueda a petición "overload-resolution"

3 la respuesta

Llamada de método ambiguo con sobrecarga del parámetro Acción <T>

Encontré un comportamiento inesperado del compilador al llamar al método sobrecargado con diferentesAction<T> variaciones Digamos que tengo esta claseTest y estoy creando su instancia en elCallTest constructor. public class Test { public ...

1 la respuesta

Resolución de sobrecarga peculiar con while (verdadero)

Estaba implementando sobrecargas de sincronización / asíncrona cuando me encontré con esta situación peculiar: Cuando tengo una expresión lambda regular sin parámetros o un valor de retorno, va alRun sobrecargar con elAction parámetro, que es ...

1 la respuesta

Inicialización de lista y resolución de sobrecarga fallida del constructor initializer_list

Lo siguiente no se compila conclang35 -std=c++11: #include <iostream> #include <string> #include <initializer_list> class A { public: A(int, bool) { std::cout << __PRETTY_FUNCTION__ << std::endl; } A(int, double) { std::cout << ...

1 la respuesta

¿Por qué la caída del puntero tiene prioridad sobre una plantilla deducida?

Digamos que estoy escribiendo una función para imprimir la longitud de una cadena: template <size_t N> void foo(const char (&s)[N]) { std::cout << "array, size=" << N-1 << std::endl; } foo("hello") // prints array, size=5Ahora quiero extenderfoo ...

1 la respuesta

Si la dirección de una función no se puede resolver durante la deducción, ¿es SFINAE o un error del compilador?

En C ++ 0x, las reglas de SFINAE se han simplificado de forma tal que cualquier expresión o tipo no válido que ocurra en el "contexto inmediato" de deducción no resulte en un error del compilador sino en un error de deducción (SFINAE). Mi ...

3 la respuesta

¿Cómo se determina la ambigüedad en el algoritmo de resolución de sobrecarga?

Estoy tratando de entender el método de resolución de sobrecarga. ¿Por qué es esto ambiguo? void func(double, int, int, double) {} void func(int, double, double, double) {} void main() { func(1, 2, 3, 4); }pero esto no es? void func(int, int, ...

2 la respuesta

¿Cuáles son las trampas de ADL?

Hace algún tiempo leí un artículo que explicaba varias trampas de la búsqueda dependiente de argumentos, pero ya no puedo encontrarlo. Se trataba de obtener acceso a cosas a las que no debería tener acceso o algo así. Así que pensé en preguntar ...

2 la respuesta

Lambdas sobrecargadas en C ++ y diferencias entre clang y gcc

Estoy jugando con un truco para sobrecargar lambdas en C ++. Específicamente: // For std::function #include <functional> // For std::string #include <string> // For std::cout #include <iostream> template <class... F> struct overload : F... { ...

2 la respuesta

Método de resolución de sobrecarga con respecto a genéricos e IEnumerable

Me di cuenta de esto el otro día, digamos que tienes dos métodos sobrecargados: public void Print<T>(IEnumerable<T> items) { Console.WriteLine("IEnumerable T"); } public void Print<T>(T item) { Console.WriteLine("Single T"); }Este ...

3 la respuesta

¿Por qué se elige un método genérico cuando existe uno no genérico?

El siguiente programa produce esta salida: Foo<T> called Process is terminated due to StackOverflowException. Entonces,Foo(baz) llama al genéricoFoo<T>, peroBar(baz) recurre y haceno llamadaBar<T>. Estoy en C # 5.0 y Microsoft .NET. El ...