[GCC-XML] detection of templeted member function inside template class ?

Brad King brad.king at kitware.com
Thu Aug 14 11:16:24 EDT 2008


Damien Fagnou wrote:
> I am trying to use gccxml on the OpenEXR Libraries .
> its an heavily templated project and in case like :
> 
> template <class T> class Matrix44
> {
>  public:
> 
>    T x[4][4];
> 
>    // this is not
>    template <class S>
>    const Matrix44 &    setAxisAngle (const Vec3<S>& ax, S ang);
> 
>    /// this is seen by gccxml
>    const Matrix44 &    setScale (T s);
> }
> 
> 
> I make sure that Matrix44<float > is instanciate doing
> sizeof(Matrix44<float >) somewhere in my code .
> 
> I also make sure I use the template member function :
> 
> Matrix44<float > myMat;
> myMat.setAxisAngle( Imath::V3f(1.0,0.0,0.0) , 20.0  );
> 
> but nothing does it ,
> 
> setScale is in the xml output but not setAxisAngle.

Unfortunately this is a case that I've never been able to solve in the
gccxml dump implementation.  It works for members of class templates,
and for member templates of non-template classes.  It does not work for
member templates within class templates.  I have simply been unable to
discover the incantation inside GCC's source code to get a reference to
such instantiations.  The class template instantiation lists the member
template, but the member template does not list its instantiations.

If you want to try to fix it, I can get you started.

-Brad



More information about the gccxml mailing list