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.
«Símbolo» : símbolo ambíguo
Observações
O compilador não pode determinar a qual símbolo você está se referindo. Mais de um símbolo com o nome especificado está no escopo. Consulte as notas após a mensagem de erro para as localizações de ficheiros e declarações que o compilador encontrou para o símbolo ambíguo. Para corrigir esse problema, você pode qualificar totalmente o símbolo ambíguo usando seu namespace, por exemplo, std::byte ou ::byte. Você também pode usar um alias de namespace para dar a um namespace incluído um nome curto conveniente para uso ao desambiguar símbolos em seu código-fonte.
C2872 pode ocorrer se um ficheiro de cabeçalho inclui uma diretiva 'using' e um ficheiro de cabeçalho subsequente for incluído que contenha um tipo que também está no namespace mencionado na using diretiva. Especifique uma using diretiva somente depois que todos os seus arquivos de cabeçalho forem especificados com #include.
C2872 pode ocorrer no Visual Studio 2013 devido a um conflito entre o Windows::Foundation::Metadata::Platform tipo enum e o namespace definido Platform em C++/CX. Para contornar este problema, siga estes passos:
Remova a cláusula "using namespace Windows::Foundation::Metadata" dos ficheiros de projeto.
Especifique o nome totalmente qualificado para qualquer tipo incluído neste namespace.
Example
O exemplo a seguir gera C2872, porque uma referência ambígua é feita a uma variável chamada i; duas variáveis com o mesmo nome estão no escopo:
// C2872.cpp
// compile with: cl /EHsc C2872.cpp
namespace A {
int i;
}
using namespace A;
int i;
int main() {
::i++; // ok, uses i from global namespace
A::i++; // ok, uses i from namespace A
i++; // C2872 ambiguous: ::i or A::i?
// To fix this issue, use the fully qualified name
// for the intended variable.
}