Erreur du compilateur C3771
"identifier" : déclaration friend introuvable dans la portée espace de noms la plus proche
La déclaration de modèle de classe pour le modèle spécifié identifier est introuvable dans l’espace de noms actuel.
Pour corriger cette erreur
- Assurez-vous que la déclaration de modèle de classe pour l’identificateur de modèle est définie dans l’espace de noms actuel ou que l’identificateur de modèle est un nom complet.
Exemple
L’exemple de code suivant déclare un modèle de classe et une fonction dans l’espace de noms NA
, mais tente de déclarer un modèle de fonction friend dans l’espace de noms 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.
};
}