Compartir a través de


Error del compilador C3771

"identifier": no se puede encontrar ninguna declaración friend en el ámbito del espacio de nombres más próximo

La declaración de la plantilla de clase de la plantilla especificada identifier no se encuentra en el espacio de nombres actual.

Para corregir este error

  • Asegúrese de que la declaración de la plantilla de clase del identificador de plantilla está definida en el espacio de nombres actual o que el identificador de plantilla sea un nombre completo.

Ejemplo

En el ejemplo de código siguiente se declara una función y plantilla de clase en el espacio de nombres NA, pero se intenta declarar una plantilla de función friend en el espacio de nombres 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.
    };
}

Consulte también

Templates (Plantillas [C++])