Compilerfehler C2872

Aktualisiert: November 2007

Fehlermeldung

'Symbol' : Mehrdeutiges Attribut
'symbol' : ambiguous symbol

Der Compiler kann nicht ermitteln, auf welches Symbol verwiesen wird.

C2872 kann auftreten, wenn eine Headerdatei eine using Directive (C++) beinhaltet und eine nachfolgende Headerdatei mit #include eingefügt wurde, die einen Typ enthält, der auch im angegebenen Namespace der using-Direktive vorhanden ist. Geben Sie eine using-Direktive erst nach den #include-Anweisungen für Ihre Headerdateien an.

Weitere Informationen zu C2872 finden Sie unter https://support.microsoft.com/default.aspx?scid=kb;en-us;316317.

Im folgenden Beispiel wird C2872 generiert:

// C2872.cpp
namespace A {
   int i;
}

using namespace A;
int i;
int main() {
   ::i++;   // ok
   A::i++;   // ok
   i++;   // C2872 ::i or A::i?
}