<?xml version='1.0' encoding='ISO-8859-1'?>
<ast>
 <declarations>
  <instance accessibility="0" class="Synopsis.AST.Class" file="Parsers/Cxx/input/func_template_arg.cc" language="C++" line="4" name="function" type="struct">
   <template>
    <instance class="Synopsis.Type.Template" language="C++" name="function">
     <declaration/>
     <parameters>
      <instance class="Synopsis.AST.Parameter" identifier="" value="">
       <premodifier>
        class
       </premodifier>
       <type>
        <instance class="Synopsis.Type.Dependent" language="C++" name="Foo"/>
       </type>
      </instance>
     </parameters>
    </instance>
   </template>
   <comments>
    <instance class="Synopsis.AST.Comment" file="Parsers/Cxx/input/func_template_arg.cc" line="1" suspect="1">
     <text>
      // Test function pointers as template arguments

     </text>
    </instance>
   </comments>
   <declarations>
    <instance accessibility="1" class="Synopsis.AST.Builtin" file="Parsers/Cxx/input/func_template_arg.cc" language="C++" line="1" name="EOS" type="EOS"/>
   </declarations>
  </instance>
  <instance accessibility="0" class="Synopsis.AST.Class" file="Parsers/Cxx/input/func_template_arg.cc" language="C++" line="9" name="function&lt;void()(A1,A2)&gt;" type="struct">
   <template>
    <instance class="Synopsis.Type.Template" language="C++" name="function&lt;void()(A1,A2)&gt;">
     <declaration/>
     <parameters>
      <instance class="Synopsis.AST.Parameter" identifier="" value="">
       <premodifier>
        class
       </premodifier>
       <type>
        <instance class="Synopsis.Type.Dependent" language="C++" name="A1"/>
       </type>
      </instance>
      <instance class="Synopsis.AST.Parameter" identifier="" value="">
       <premodifier>
        class
       </premodifier>
       <type>
        <instance class="Synopsis.Type.Dependent" language="C++" name="A2"/>
       </type>
      </instance>
     </parameters>
    </instance>
   </template>
   <comments>
    <instance class="Synopsis.AST.Comment" file="Parsers/Cxx/input/func_template_arg.cc" line="6" suspect="0">
     <text>
      // Test template class with function argument
// (not really a template function)

     </text>
    </instance>
   </comments>
   <declarations>
    <instance accessibility="1" class="Synopsis.AST.Builtin" file="Parsers/Cxx/input/func_template_arg.cc" language="C++" line="6" name="EOS" type="EOS"/>
   </declarations>
  </instance>
  <instance accessibility="0" class="Synopsis.AST.Class" file="Parsers/Cxx/input/func_template_arg.cc" language="C++" line="13" name="function&lt;R()(void)&gt;" type="struct">
   <template>
    <instance class="Synopsis.Type.Template" language="C++" name="function&lt;R()(void)&gt;">
     <declaration/>
     <parameters>
      <instance class="Synopsis.AST.Parameter" identifier="" value="">
       <premodifier>
        class
       </premodifier>
       <type>
        <instance class="Synopsis.Type.Dependent" language="C++" name="R"/>
       </type>
      </instance>
     </parameters>
    </instance>
   </template>
   <comments>
    <instance class="Synopsis.AST.Comment" file="Parsers/Cxx/input/func_template_arg.cc" line="11" suspect="0">
     <text>
      // Test return type fptr

     </text>
    </instance>
   </comments>
   <declarations>
    <instance accessibility="1" class="Synopsis.AST.Builtin" file="Parsers/Cxx/input/func_template_arg.cc" language="C++" line="11" name="EOS" type="EOS"/>
   </declarations>
  </instance>
  <instance accessibility="0" class="Synopsis.AST.Class" file="Parsers/Cxx/input/func_template_arg.cc" language="C++" line="17" name="function&lt;R()(int,int)&gt;" type="struct">
   <template>
    <instance class="Synopsis.Type.Template" language="C++" name="function&lt;R()(int,int)&gt;">
     <declaration/>
     <parameters>
      <instance class="Synopsis.AST.Parameter" identifier="" value="">
       <premodifier>
        class
       </premodifier>
       <type>
        <instance class="Synopsis.Type.Dependent" language="C++" name="R"/>
       </type>
      </instance>
     </parameters>
    </instance>
   </template>
   <comments>
    <instance class="Synopsis.AST.Comment" file="Parsers/Cxx/input/func_template_arg.cc" line="15" suspect="0">
     <text>
      // Test return type fptr

     </text>
    </instance>
   </comments>
   <declarations>
    <instance accessibility="1" class="Synopsis.AST.Builtin" file="Parsers/Cxx/input/func_template_arg.cc" language="C++" line="15" name="EOS" type="EOS"/>
   </declarations>
  </instance>
 </declarations>
 <types>
  <instance class="Synopsis.Type.Declared" language="C++" name="EOS">
   <declaration/>
  </instance>
  <instance class="Synopsis.Type.Declared" language="C++" name="function">
   <declaration/>
  </instance>
  <instance class="Synopsis.Type.Declared" language="C++" name="function&lt;R()(int,int)&gt;">
   <declaration/>
  </instance>
  <instance class="Synopsis.Type.Declared" language="C++" name="function&lt;R()(void)&gt;">
   <declaration/>
  </instance>
  <instance class="Synopsis.Type.Declared" language="C++" name="function&lt;void()(A1,A2)&gt;">
   <declaration/>
  </instance>
 </types>
 <files>
  <instance class="Synopsis.AST.SourceFile" filename="Parsers/Cxx/input/func_template_arg.cc" is_main="1" language="C++">
   <declarations/>
   <macro_calls/>
  </instance>
 </files>
</ast>
