es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué la búsqueda dependiente del argumento no funciona para el aliasing de tipos en c++?

Teniendo en cuenta el siguiente ejemplo mínimo, la función no se encuentra. La búsqueda dependiente del argumento parece fallar. ¿Por qué?

#include <iostream>
#include <array

namespace foo {
    using Values = std::array<int, 2>;
    void function(const Values& v) {std::cout << v[0] << " " << v[1] << '\n';}
}

int main() {
    foo::Values v{1,2};
    function(v);
    return 0;
}

Una posible solución es importar la función colocando “using foo::function;” antes de la función principal. ¿Hay alguna alternativa para evitar esta declaración de uso?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Una alternativa para evitar el uso de la declaración using foo::function; es llamar explícitamente la función usando el espacio de nombres foo::function(v) en lugar de simplemente llamar function(v). Esto asegurará que la función se encuentre en el espacio de nombres correcto y que la búsqueda dependiente de argumentos funcione correctamente.

Comments are closed.