Browse Source

Added preliminary support for class template specialization in the bridge AST.

pull/1/head
triton 13 years ago
parent
commit
ea114f8ba0
  1. 5
      src/Bridge/Template.cs
  2. 11
      src/Parser/Parser.cpp

5
src/Bridge/Template.cs

@ -37,6 +37,11 @@ namespace Cxxi
} }
} }
public class ClassTemplateSpecialization : Class
{
public ClassTemplate TemplatedDecl;
}
public class FunctionTemplate : Template public class FunctionTemplate : Template
{ {
public FunctionTemplate(Declaration decl) public FunctionTemplate(Declaration decl)

11
src/Parser/Parser.cpp

@ -1226,6 +1226,7 @@ Cxxi::Declaration^ Parser::WalkDeclaration(clang::Decl* D, clang::TypeLoc* TL,
if (CanBeDefinition && Class->DefinitionOrder == 0) if (CanBeDefinition && Class->DefinitionOrder == 0)
{ {
Class->DefinitionOrder = Index++; Class->DefinitionOrder = Index++;
//Debug("%d: %s\n", Index++, GetTagDeclName(RD).c_str());
} }
Decl = Class; Decl = Class;
@ -1245,6 +1246,16 @@ Cxxi::Declaration^ Parser::WalkDeclaration(clang::Decl* D, clang::TypeLoc* TL,
break; break;
} }
case Decl::ClassTemplateSpecialization:
{
auto TS = cast<ClassTemplateSpecializationDecl>(D);
auto CT = gcnew Cxxi::ClassTemplateSpecialization();
Decl = CT;
break;
}
case Decl::FunctionTemplate: case Decl::FunctionTemplate:
{ {
FunctionTemplateDecl* TD = cast<FunctionTemplateDecl>(D); FunctionTemplateDecl* TD = cast<FunctionTemplateDecl>(D);

Loading…
Cancel
Save