Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
'função': nenhuma função sobrecarregada correspondente encontrada
Observações
O compilador não pôde encontrar uma função sobrecarregada que corresponde à função especificada. Nenhuma função foi encontrada que leva parâmetros correspondentes, ou nenhuma função de correspondência tem a acessibilidade necessária no contexto.
Quando usados por determinados contêineres ou algoritmos de biblioteca padrão, seus tipos devem fornecer membros acessíveis ou funções de amigo que satisfaçam os requisitos do contêiner ou algoritmo. Por exemplo, seus tipos de iterador devem derivar de std::iterator<>. As operações de comparação ou a utilização de outros operadores em tipos de elementos de contentor podem exigir que o tipo seja considerado tanto como operando esquerdo quanto direito. O uso do tipo como um operando à direita pode exigir a implementação do operador como uma função não-membro do tipo.
Exemplo
As versões do compilador anteriores ao Visual Studio 2017 não executavam a verificação de acesso em nomes qualificados em alguns contextos de modelo. Isso pode interferir com o comportamento esperado do SFINAE, onde se espera que a substituição falhe devido à inacessibilidade de um nome. Isso poderia ter causado uma falha ou um comportamento inesperado no tempo de execução devido ao compilador chamar incorretamente a sobrecarga errada do operador. No Visual Studio 2017, um erro de compilador é gerado.
Este exemplo compila no Visual Studio 2015, mas gera um erro no Visual Studio 2017. Para corrigir esse problema, torne o membro do parâmetro de modelo acessível onde ele é avaliado.
#include <type_traits>
template <class T> class S {
// public: // Uncomment this line to fix
typedef typename T type;
};
template <class T, std::enable_if<std::is_integral<typename S<T>::type>::value, T> * = 0>
bool f(T x)
{
return (x == 0);
}
int main()
{
f(10); // C2672: No matching overloaded function found.
}