mirror of https://github.com/mono/CppSharp.git
c-sharpdotnetmonobindingsbridgecclangcpluspluscppsharpglueinteropparserparsingpinvokeswigsyntax-treevisitorsxamarinxamarin-bindings
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.3 KiB
62 lines
1.3 KiB
using System.Collections.Generic; |
|
|
|
namespace Cxxi |
|
{ |
|
public struct TemplateParameter |
|
{ |
|
public string Name; |
|
} |
|
|
|
public abstract class Template : Declaration |
|
{ |
|
protected Template(Declaration decl) |
|
{ |
|
TemplatedDecl = decl; |
|
} |
|
|
|
public Declaration TemplatedDecl; |
|
|
|
public List<TemplateParameter> Parameters; |
|
} |
|
|
|
public class ClassTemplate : Template |
|
{ |
|
public ClassTemplate(Declaration decl) |
|
: base(decl) |
|
{ |
|
} |
|
|
|
public Class TemplatedClass |
|
{ |
|
get { return TemplatedDecl as Class; } |
|
} |
|
|
|
public override T Visit<T>(IDeclVisitor<T> visitor) |
|
{ |
|
return visitor.VisitClassTemplateDecl(this); |
|
} |
|
} |
|
|
|
public class ClassTemplateSpecialization : Class |
|
{ |
|
public ClassTemplate TemplatedDecl; |
|
} |
|
|
|
public class FunctionTemplate : Template |
|
{ |
|
public FunctionTemplate(Declaration decl) |
|
: base(decl) |
|
{ |
|
} |
|
|
|
public Function TemplatedFunction |
|
{ |
|
get { return TemplatedDecl as Function; } |
|
} |
|
|
|
public override T Visit<T>(IDeclVisitor<T> visitor) |
|
{ |
|
return visitor.VisitFunctionTemplateDecl(this); |
|
} |
|
} |
|
}
|
|
|