[cfe-dev] Examples of FriendTemplateDecl ?

Enea Zaffanella zaffanella at cs.unipr.it
Mon Feb 15 00:18:21 PST 2010


Hello.

In the documentation of AST class FriendTemplateDecl it is said:

01221 /// Declaration of a friend template.  For example:
01222 ///
01223 /// template <typename T> class A {
01224 ///   friend class MyVector<T>; // not a friend template
01225 ///   template <typename U> friend class B; // friend template
01226 ///   template <typename U> friend class Foo<T>::Nested; // friend 
template

I tried the examples above and, as far as I can see, clang generates no 
FriendTemplateDecl node at all.

For the first friend template declaration
     template <typename U> friend class B;
it seems that a "normal" FriendDecl node is produced, containing a 
NamedDecl node (shouldn't we get a Type node?), which is a 
ClassTemplateDecl.

For the second frined template declaration
     template <typename U> friend class Foo<T>::Nested;
we still obtain a "normal" FriendDecl node, but this time the node 
contains a Type node (an ElaborateType). In this case there is no list 
of template parameters.

Is this a known issue or should we file a bug?
Are there other examples where clang actually generates a 
FriendTemplateDecl node?

Regards,
Enea Zaffanella.



More information about the cfe-dev mailing list