[GCC-XML] Nested template class not declared?

Wesley Tansey tansey at vt.edu
Fri Mar 30 15:59:40 EDT 2007


Hi,

First off, let me just say that I LOVE this tool!  I spent 2 weeks 
trying to hack an ANTLR C++ grammar to do XML output before I found this 
tool, so you guys have been a huge life saver already.

I am writing a tool which requires seeing the template parameters of an 
STL map class.  I've written my own parsing code to get the parameters 
recursively (i.e. there may be a map which has a map as a key).  
However, in trying this example, I have discovered that if you have a 
templated class as a parameter to the inner map, the templated class 
seems to never be recognized, even though it should be since it's 
certainly a variable in the map.  The following is an example program:

#include <map>
#include <vector>

template <typename T>
class A
{
    T my_t;
};

class B
{
    std::map<std::map<A<int>, int>, std::vector<double> > combo;
    std::map<A<double>, int> single;
};

int main(){return 0;}

Here, combo is a map which uses a map as a key, and the inner map uses 
A<int> as its key.  However, the XML file produced by GCC-XML doesn't 
contain a class definition for A<int> (though it does contain one for 
A<double>).  I'm using the 0.6.0 release and VC 7.1 to parse the code.  
Is this just not possible with this version of GCC-XML or is it maybe 
because I'm using VC?

Sincerely, 

Wesley Tansey
Graduate Student
Department of Computer Science
Virginia Tech
http://people.cs.vt.edu/~tansey/





More information about the gccxml mailing list