<HTML >
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=us-ascii">



<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:#606420;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:Arial;
        color:windowtext;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>

</HEAD>
<BODY lang=EN-US link=blue vlink="#606420">
<DIV>

<div class=Section1>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Hi,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>With the documented limitation of not producing xml
description for non-instantiated templated types, I’m developing a macro
to take care of this by declaring some extra typedefs in the style of </span></font><font
size=2 face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New"'>GCCXML_EXPORT_TYPES(<<typename>>)</span></font><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>I’m having problems when gccxml encounters the following
part of the implementation however:<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>           
<font color=blue><span style='color:blue'>template</span></font> <<font
color=blue><span style='color:blue'>typename</span></font> T><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>           
<font color=blue><span style='color:blue'>class</span></font>
has_nested_value_type<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>           
{<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>               
<font color=blue><span style='color:blue'>typedef</span></font> <font
color=blue><span style='color:blue'>char</span></font>
true_type;                   
 <font color=green><span style='color:green'>// sizeof(true_type) == 1<o:p></o:p></span></font></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>               
<font color=blue><span style='color:blue'>typedef</span></font> <font
color=blue><span style='color:blue'>struct</span></font> { <font color=blue><span
style='color:blue'>char</span></font> a[2]; } false_type;   <font
color=green><span style='color:green'>// sizeof(false_type) > 1<o:p></o:p></span></font></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>               
<font color=blue><span style='color:blue'>template</span></font> <<font
color=blue><span style='color:blue'>class</span></font> U> true_type  <font
color=blue><span style='color:blue'>static</span></font>
has_nested_value_type_impl ( <font color=blue><span style='color:blue'>typename</span></font>
U::value_type <font color=blue><span style='color:blue'>const</span></font> *
);<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>               
<font color=blue><span style='color:blue'>template</span></font> <<font
color=blue><span style='color:blue'>class</span></font> U> false_type <font
color=blue><span style='color:blue'>static</span></font>
has_nested_value_type_impl ( ... );<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>           
<font color=blue><span style='color:blue'>public</span></font>:<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>               
<font color=blue><span style='color:blue'>enum</span></font> { value = (<font
color=blue><span style='color:blue'>sizeof</span></font>(has_nested_value_type_impl<T
>(0))==<font color=blue><span style='color:blue'>sizeof</span></font>(true_type))
};<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>           
};<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Causing the error:<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Courier New"><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Courier New"><span style='font-size:10.0pt;
font-family:"Courier New"'>Enumerator value for ‘value’ not integer
constant.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face="Courier New"><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>This struct compiles fine with the vs7.1 compiler and I can
see in the gccxml_config file in the gccxml directory the following lines:<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>GCCXML_COMPILER="msvc71"<o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>GCCXML_CXXFLAGS=" 
/W3 /Zm1000 /GX /GR"<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>My guess is that an older gcc compiler is being simulated as
this error is produced with gcc 3.2.3 for example, but not with 3.4.2.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Could this be as simple as passing the wrong flags to gccxml?<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Any help would be greatly appreciated!<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Regards,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Sebastian<o:p></o:p></span></font></p>

</div>

 </DIV>
<DIV> </DIV>
<DIV>
<DIV>
<FONT FACE="Courier New" SIZE="2">*******************************</FONT>
</DIV>
<DIV>
<FONT FACE="Courier New">
<FONT COLOR="black"><SPAN LANG="EN-GB" STYLE="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial">This e-mail contains information for the intended recipient only.  It may contain proprietary material or confidential information.  If you are not the intended recipient you are not authorised to distribute, copy or use this e-mail or any attachment to it. <FONT FACE="Arial" COLOR="black" SIZE="2"><SPAN STYLE="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial">Murex cannot guarantee that it is virus free and accepts no responsibility for any loss or damage arising from its use.  If you have received this e-mail in error please notify immediately the sender and delete the original email received, any attachments and all copies from your system.</SPAN></FONT></SPAN></FONT>
</FONT>
</DIV>
</DIV></BODY></HTML>