Teilen über


Compilerfehler C3771

"Bezeichner": Die Friend-Deklaration kann im nächsten Namespacebereich nicht gefunden werden.

Bemerkungen

Die Klassenvorlagendeklaration für den angegebenen Bezeichner der Vorlage wurde im aktuellen Namespace nicht gefunden.

So beheben Sie diesen Fehler

  • Stellen Sie sicher, dass die Klassenvorlagendeklaration für den Vorlagenbezeichner im aktuellen Namespace definiert ist oder dass der Vorlagenbezeichner ein voll qualifizierter Name ist.

Beispiel

Im folgenden Codebeispiel werden eine Klassenvorlage und Funktion im Namespace NAdeklariert, allerdings wird versucht, eine Friend-Funktionsvorlage im Namespace NBzu deklarieren.

// C3771.cpp
// compile with: /c

namespace NA {
template<class T> class A {
    void aFunction(T t) {}
    };
}
// using namespace NA;
namespace NB {
    class X {
        template<class T> friend void A<T>::aFunction(T); // C3771
// try the following line instead
//      template<class T> friend void NA::A<T>::aFunction(T);
// or try "using namespace NA;" instead.
    };
}

Siehe auch

Vorlagen