Resultados de la búsqueda a petición "overload-resolution"
Prioridad de inicialización de lista del objeto del mismo tipo
#include <iostream> #include <initializer_list> using namespace std; struct CL { CL(){} CL (std::initializer_list<CL>){cout<<1;} CL (const CL&){cout<<2;} }; int main() { CL cl1; CL cl2 {cl1}; //prints 21 }Aquí estáCL struct con copy constructor y ...
Resolución de sobrecarga: asignación de llaves vacías
Escribi algun codigoS s; ...s = {};, esperando que termine igual queS s = {};. Sin embargo no lo hizo. El siguiente ejemplo reproduce el problema: #include <iostream> struct S { S(): a(5) { } S(int t): a(t) {} S &operator=(int t) { a = t; return ...
Reglas de sobrecarga de funciones con plantilla de C ++
Al sobrecargar una función con plantilla, ¿cómo debe elegir el compilador a qué versión de la función llamar si tiene la opción de: Llame a una versión con plantilla de la función (comofunc<T>(foo))Llame a una versión sobrecargada de la función ...
¿Por qué el constructor de plantilla variadic coincide mejor que el constructor de copia?
El siguiente código no se compila: #include <iostream> #include <utility> struct Foo { Foo() { std::cout << "Foo()" << std::endl; } Foo(int) { std::cout << "Foo(int)" << std::endl; } }; template <typename T> struct Bar { Foo foo; Bar(const Bar&) ...
¿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 ...
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... { ...
¿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, ...
¿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 ...
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 << ...
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 ...