Matthieu Moy Guest
|
Posted: Tue Mar 22, 2005 2:42 am Post subject: error: friend declaration does not name a class or function |
|
|
Bonjour,
Le programme suivant ne compile pas avec GCC 3.4.1 :
namespace n1 { }
class c2 {
friend class n1_c1;
friend class n1::c1; // erreur ici.
};
namespace n1 {
class c1 {};
}
Il me réponds
namespace-friend.cpp:5: error: expected type-name
namespace-friend.cpp:5: error: friend declaration does not name a class or function
Avec comeau online, idem :
"ComeauTest.c", line 5: error: namespace "n1" has no tag member named "c1"
friend class n1::c1; // erreur ici.
^
Ce qui m'étonne, c'est que le compilateur ne râle pas si il trouve une
classe "normale" inconnue derrière "friend class", mais il râle si la
classe est dans un namespace.
Y a-t-il une raison particulière a cela ?
Y a-t-il un moyen plus élégant que d'ajouter les "forward
declarations" pour chaque classe avant le "friend" ?
Merci,
--
Matthieu
|
|