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

2 la respuesta

Resolución de sobrecarga en espacios de nombres

El siguiente código falla como se esperaba, porque no hay sobrecarga deget es encontrado. Utilizandostd::get resolvería el problema. #include <array> int main() { std::array<int, 2> ar{2,3}; auto r = get<0>(ar);//fails, get was not declared in ...

1 la respuesta

Resolución de sobrecarga entre miembros de plantilla en clases base y derivadas

El compilador de Microsoft (Visual Studio 2017 15.2) rechaza el siguiente código: #include <type_traits> struct B { template<int n, std::enable_if_t<n == 0, int> = 0> void f() { } }; struct D : B { using B::f; template<int n, std::enable_if_t<n ...

1 la respuesta

¿Cómo puedo evitar las conversiones implícitas en una plantilla de función?

¿Cómo puedo definir una plantilla de función para evitar conversiones implícitas? Parece que puedo evitar las conversiones implícitas usando funciones que no sean plantillas pero no usando plantillas de funciones. Definir una plantilla de ...

3 la respuesta

¿Por qué puedo evitar conversiones implícitas para primitivas pero no para tipos definidos por el usuario?

Los Estándares C ++ de alta integridad sugieren que los argumentos de valor de las funciones se pueden eliminar, evitando así conversiones ...

1 la respuesta

Desambiguación de plantilla de función sobrecargada con `std :: enable_if` y contexto no deducido

Considere el siguiente código: template <typename T> struct dependent_type { using type = T; }; template <typename T> auto foo(T) -> std::enable_if_t<std::is_same<T, int>{}> { std::cout << "a\n"; } template<typename T> void foo(typename ...

1 la respuesta

¿Cómo funciona la deducción de argumentos de plantilla cuando una función sobrecargada está involucrada como argumento?

Este es elpregunta más sofisticada mencionado en¿Cómo funciona la resolución de sobrecarga cuando un argumento es una función ...

1 la respuesta

¿Cómo funciona la resolución de sobrecarga cuando un argumento es una función sobrecargada?

PreámbuloLa resolución de sobrecarga en C ++ puede ser un proceso demasiado complejo. Se necesita un gran esfuerzo mental para comprender todas las reglas de C ++ que rigen la resolución de sobrecarga. Recientemente se me ocurrió que la presencia ...

4 la respuesta

¿Cómo se compila "std :: cout << std :: endl;"?

MásManipuladores de flujo IO [http://en.cppreference.com/w/cpp/io/manip]son funciones regulares con la siguiente firma: std::ios_base& func( std::ios_base& str );Sin embargo, algunos manipuladores (incluidos los más ...

2 la respuesta

SFINAE no sucede con std :: subyacente_tipo

Debajo del código SFINAE con plantillas variadas se compila muy bien usando clang 3.7.1, C ++ 14: #include <array> #include <iostream> #include <vector> #include <cstdint> enum class Bar : uint8_t { ay, bee, see }; struct S { static void foo() ...

2 la respuesta

Determinar qué sobrecarga se seleccionó

Digamos que tengo una función sobrecargada complicada arbitraria: template <class T> void foo(T&& ); template <class T> void foo(T* ); void foo(int );Quiero saber, para una expresión dada,cual foo() se llama. Por ejemplo, dada alguna ...