[GCC-XML] Default parameter values in member functions of templated classes.

Nindi Singh nindi73 at yahoo.co.uk
Fri Dec 28 17:28:40 EST 2007


Apologies for forgetting to put in a subject line in my last email.

I am using :
    gcc version 4.1.3 20070929 (prerelease) (ubuntu 4.1.2-16ubuntu2)
    gccxml   built from source tree checked out 28/12/2007

My header file to be parsed is 
__________________________________________________________________________

#ifndef TESTVECTOR
#define TESTVECTOR

class egclass{};

template <class T>  
class vector {
  vector(unsigned long i, const egclass  = egclass()  ){}
};

class xvector {
  xvector(unsigned long i, const egclass  = egclass()  ){}
};

template class vector<double>;

#endif
____________________________________________________________________________

Two lines of interest in the resulting xml file  are as follows:

_____________________________________________________________________________________________________
<Constructor id="_138" name="vector" context="_40" access="private" mangled="_ZN6vectorIdEC1Em7egclass *INTERNAL* " demangled="vector<double>::vector(unsigned long, egclass)" location="f1:9" file="f1" line="9" inline="1">
    <Argument name="i" type="_149" location="f1:9" file="f1" line="9"/>
    <Argument type="_90c" location="f1:9" file="f1" line="9" default="<gccxml-cast-expr>"/>
  
    </Constructor>
  
    <Constructor id="_145" name="xvector" context="_89" access="private" mangled="_ZN7xvectorC1Em7egclass *INTERNAL* " demangled="xvector::xvector(unsigned long, egclass)" location="f1:13" file="f1" line="13" inline="1">
    <Argument name="i" type="_149" location="f1:13" file="f1" line="13"/>
    <Argument type="_90c" location="f1:13" file="f1" line="13" default="egclass()"/>
  </Constructor> 
______________________________________________________________________________________________________

The default values look interesting. gccxml does pick up that there is a default value
for the second parameter of the constructor in both the templated and non-templated classes.
However  <gccxml-cast-expr> is something I do not understand, should it not be the same as egclass() ?
I am actualy using pygccxml and that does not pick up the fact there is actual a default value.




      __________________________________________________________
Sent from Yahoo! Mail - a smarter inbox http://uk.mail.yahoo.com




More information about the gccxml mailing list