Kompilatorfel C3771

"identifier" : vänskapsdeklaration kan inte hittas i närmaste namnutrymmesomfång

Anmärkningar

Det går inte att hitta klassmalldeklarationen för den angivna mallidentifieraren i det aktuella namnområdet.

Så här åtgärdar du det här felet

  • Kontrollera att klassmalldeklarationen för mallidentifieraren har definierats i det aktuella namnområdet eller att mallidentifieraren är ett fullständigt kvalificerat namn.

Example

Följande kodexempel deklarerar en klassmall och funktion i namnområdet NA, men försöker deklarera en vänfunktionsmall i namnområdet NB.

// 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.
    };
}

Se även

Templates