diff --git a/src/CppParser/Bindings/CLI/AST.cpp b/src/CppParser/Bindings/CLI/AST.cpp index c4c3721d..85911538 100644 --- a/src/CppParser/Bindings/CLI/AST.cpp +++ b/src/CppParser/Bindings/CLI/AST.cpp @@ -2295,6 +2295,51 @@ CppSharp::Parser::AST::ClassTemplate::ClassTemplate() NativePtr = new ::CppSharp::CppParser::AST::ClassTemplate(); } +CppSharp::Parser::AST::ClassTemplateSpecialization^ CppSharp::Parser::AST::ClassTemplate::getSpecializations(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::ClassTemplate*)NativePtr)->getSpecializations(i); + if (__ret == nullptr) return nullptr; + return gcnew CppSharp::Parser::AST::ClassTemplateSpecialization((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)__ret); +} + +CppSharp::Parser::AST::ClassTemplateSpecialization^ CppSharp::Parser::AST::ClassTemplate::FindSpecialization(System::IntPtr ptr) +{ + auto arg0 = (void*)ptr.ToPointer(); + auto __ret = ((::CppSharp::CppParser::AST::ClassTemplate*)NativePtr)->FindSpecialization(arg0); + if (__ret == nullptr) return nullptr; + return gcnew CppSharp::Parser::AST::ClassTemplateSpecialization((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)__ret); +} + +CppSharp::Parser::AST::ClassTemplateSpecialization^ CppSharp::Parser::AST::ClassTemplate::FindSpecialization(CppSharp::Parser::AST::TemplateSpecializationType^ type) +{ + auto arg0 = *(::CppSharp::CppParser::AST::TemplateSpecializationType*)type->NativePtr; + auto __ret = ((::CppSharp::CppParser::AST::ClassTemplate*)NativePtr)->FindSpecialization(arg0); + if (__ret == nullptr) return nullptr; + return gcnew CppSharp::Parser::AST::ClassTemplateSpecialization((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)__ret); +} + +CppSharp::Parser::AST::ClassTemplatePartialSpecialization^ CppSharp::Parser::AST::ClassTemplate::FindPartialSpecialization(System::IntPtr ptr) +{ + auto arg0 = (void*)ptr.ToPointer(); + auto __ret = ((::CppSharp::CppParser::AST::ClassTemplate*)NativePtr)->FindPartialSpecialization(arg0); + if (__ret == nullptr) return nullptr; + return gcnew CppSharp::Parser::AST::ClassTemplatePartialSpecialization((::CppSharp::CppParser::AST::ClassTemplatePartialSpecialization*)__ret); +} + +CppSharp::Parser::AST::ClassTemplatePartialSpecialization^ CppSharp::Parser::AST::ClassTemplate::FindPartialSpecialization(CppSharp::Parser::AST::TemplateSpecializationType^ type) +{ + auto arg0 = *(::CppSharp::CppParser::AST::TemplateSpecializationType*)type->NativePtr; + auto __ret = ((::CppSharp::CppParser::AST::ClassTemplate*)NativePtr)->FindPartialSpecialization(arg0); + if (__ret == nullptr) return nullptr; + return gcnew CppSharp::Parser::AST::ClassTemplatePartialSpecialization((::CppSharp::CppParser::AST::ClassTemplatePartialSpecialization*)__ret); +} + +unsigned int CppSharp::Parser::AST::ClassTemplate::SpecializationsCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::ClassTemplate*)NativePtr)->getSpecializationsCount(); + return __ret; +} + CppSharp::Parser::AST::ClassTemplateSpecialization::ClassTemplateSpecialization(::CppSharp::CppParser::AST::ClassTemplateSpecialization* native) : CppSharp::Parser::AST::Class((::CppSharp::CppParser::AST::Class*)native) { @@ -2312,6 +2357,39 @@ CppSharp::Parser::AST::ClassTemplateSpecialization::ClassTemplateSpecialization( NativePtr = new ::CppSharp::CppParser::AST::ClassTemplateSpecialization(); } +CppSharp::Parser::AST::TemplateArgument^ CppSharp::Parser::AST::ClassTemplateSpecialization::getArguments(unsigned int i) +{ + auto __ret = ((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->getArguments(i); + auto ____ret = new ::CppSharp::CppParser::AST::TemplateArgument(__ret); + return gcnew CppSharp::Parser::AST::TemplateArgument((::CppSharp::CppParser::AST::TemplateArgument*)____ret); +} + +unsigned int CppSharp::Parser::AST::ClassTemplateSpecialization::ArgumentsCount::get() +{ + auto __ret = ((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->getArgumentsCount(); + return __ret; +} + +CppSharp::Parser::AST::ClassTemplate^ CppSharp::Parser::AST::ClassTemplateSpecialization::TemplatedDecl::get() +{ + return gcnew CppSharp::Parser::AST::ClassTemplate((::CppSharp::CppParser::AST::ClassTemplate*)((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->TemplatedDecl); +} + +void CppSharp::Parser::AST::ClassTemplateSpecialization::TemplatedDecl::set(CppSharp::Parser::AST::ClassTemplate^ value) +{ + ((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->TemplatedDecl = (::CppSharp::CppParser::AST::ClassTemplate*)value->NativePtr; +} + +CppSharp::Parser::AST::TemplateSpecializationKind CppSharp::Parser::AST::ClassTemplateSpecialization::SpecializationKind::get() +{ + return (CppSharp::Parser::AST::TemplateSpecializationKind)((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->SpecializationKind; +} + +void CppSharp::Parser::AST::ClassTemplateSpecialization::SpecializationKind::set(CppSharp::Parser::AST::TemplateSpecializationKind value) +{ + ((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)NativePtr)->SpecializationKind = (::CppSharp::CppParser::AST::TemplateSpecializationKind)value; +} + CppSharp::Parser::AST::ClassTemplatePartialSpecialization::ClassTemplatePartialSpecialization(::CppSharp::CppParser::AST::ClassTemplatePartialSpecialization* native) : CppSharp::Parser::AST::ClassTemplateSpecialization((::CppSharp::CppParser::AST::ClassTemplateSpecialization*)native) { diff --git a/src/CppParser/Bindings/CLI/AST.h b/src/CppParser/Bindings/CLI/AST.h index edfdecf4..1d97992e 100644 --- a/src/CppParser/Bindings/CLI/AST.h +++ b/src/CppParser/Bindings/CLI/AST.h @@ -18,6 +18,7 @@ namespace CppSharp enum struct MacroLocation; enum struct PrimitiveType; enum struct RawCommentKind; + enum struct TemplateSpecializationKind; enum struct TypeKind; enum struct VTableComponentKind; ref class ASTContext; @@ -104,20 +105,21 @@ namespace CppSharp Function = 3, Method = 4, Enumeration = 5, - Variable = 6, - Field = 7, - AccessSpecifier = 8, - Class = 9, - Template = 10, - ClassTemplate = 11, - ClassTemplateSpecialization = 12, - ClassTemplatePartialSpecialization = 13, - FunctionTemplate = 14, - Namespace = 15, - PreprocessedEntity = 16, - MacroDefinition = 17, - MacroExpansion = 18, - TranslationUnit = 19 + EnumerationItem = 6, + Variable = 7, + Field = 8, + AccessSpecifier = 9, + Class = 10, + Template = 11, + ClassTemplate = 12, + ClassTemplateSpecialization = 13, + ClassTemplatePartialSpecialization = 14, + FunctionTemplate = 15, + Namespace = 16, + PreprocessedEntity = 17, + MacroDefinition = 18, + MacroExpansion = 19, + TranslationUnit = 20 }; public enum struct AccessSpecifier @@ -257,6 +259,15 @@ namespace CppSharp FunctionBody = 5 }; + public enum struct TemplateSpecializationKind + { + Undeclared = 0, + ImplicitInstantiation = 1, + ExplicitSpecialization = 2, + ExplicitInstantiationDeclaration = 3, + ExplicitInstantiationDefinition = 4 + }; + public ref class Type : ICppInstance { public: @@ -1551,6 +1562,21 @@ namespace CppSharp ClassTemplate(::CppSharp::CppParser::AST::ClassTemplate* native); ClassTemplate(System::IntPtr native); ClassTemplate(); + + property unsigned int SpecializationsCount + { + unsigned int get(); + } + + CppSharp::Parser::AST::ClassTemplateSpecialization^ getSpecializations(unsigned int i); + + CppSharp::Parser::AST::ClassTemplateSpecialization^ FindSpecialization(System::IntPtr ptr); + + CppSharp::Parser::AST::ClassTemplateSpecialization^ FindSpecialization(CppSharp::Parser::AST::TemplateSpecializationType^ type); + + CppSharp::Parser::AST::ClassTemplatePartialSpecialization^ FindPartialSpecialization(System::IntPtr ptr); + + CppSharp::Parser::AST::ClassTemplatePartialSpecialization^ FindPartialSpecialization(CppSharp::Parser::AST::TemplateSpecializationType^ type); }; public ref class ClassTemplateSpecialization : CppSharp::Parser::AST::Class @@ -1560,6 +1586,25 @@ namespace CppSharp ClassTemplateSpecialization(::CppSharp::CppParser::AST::ClassTemplateSpecialization* native); ClassTemplateSpecialization(System::IntPtr native); ClassTemplateSpecialization(); + + property unsigned int ArgumentsCount + { + unsigned int get(); + } + + property CppSharp::Parser::AST::ClassTemplate^ TemplatedDecl + { + CppSharp::Parser::AST::ClassTemplate^ get(); + void set(CppSharp::Parser::AST::ClassTemplate^); + } + + property CppSharp::Parser::AST::TemplateSpecializationKind SpecializationKind + { + CppSharp::Parser::AST::TemplateSpecializationKind get(); + void set(CppSharp::Parser::AST::TemplateSpecializationKind); + } + + CppSharp::Parser::AST::TemplateArgument^ getArguments(unsigned int i); }; public ref class ClassTemplatePartialSpecialization : CppSharp::Parser::AST::ClassTemplateSpecialization diff --git a/src/CppParser/Bindings/CSharp/AST.cs b/src/CppParser/Bindings/CSharp/AST.cs index ec6646cb..284b5a5b 100644 --- a/src/CppParser/Bindings/CSharp/AST.cs +++ b/src/CppParser/Bindings/CSharp/AST.cs @@ -38,20 +38,21 @@ namespace CppSharp Function = 3, Method = 4, Enumeration = 5, - Variable = 6, - Field = 7, - AccessSpecifier = 8, - Class = 9, - Template = 10, - ClassTemplate = 11, - ClassTemplateSpecialization = 12, - ClassTemplatePartialSpecialization = 13, - FunctionTemplate = 14, - Namespace = 15, - PreprocessedEntity = 16, - MacroDefinition = 17, - MacroExpansion = 18, - TranslationUnit = 19 + EnumerationItem = 6, + Variable = 7, + Field = 8, + AccessSpecifier = 9, + Class = 10, + Template = 11, + ClassTemplate = 12, + ClassTemplateSpecialization = 13, + ClassTemplatePartialSpecialization = 14, + FunctionTemplate = 15, + Namespace = 16, + PreprocessedEntity = 17, + MacroDefinition = 18, + MacroExpansion = 19, + TranslationUnit = 20 } public enum AccessSpecifier @@ -191,6 +192,15 @@ namespace CppSharp FunctionBody = 5 } + public enum TemplateSpecializationKind + { + Undeclared = 0, + ImplicitInstantiation = 1, + ExplicitSpecialization = 2, + ExplicitInstantiationDeclaration = 3, + ExplicitInstantiationDefinition = 4 + } + public unsafe partial class Type : IDisposable, CppSharp.Runtime.ICppMarshal { [StructLayout(LayoutKind.Explicit, Size = 8)] @@ -415,6 +425,11 @@ namespace CppSharp [FieldOffset(4)] public CppSharp.Parser.AST.TypeQualifiers.Internal Qualifiers; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0QualifiedType@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, EntryPoint="??0QualifiedType@AST@CppParser@CppSharp@@QAE@ABU0123@@Z")] @@ -454,6 +469,7 @@ namespace CppSharp public QualifiedType() { __Instance = Marshal.AllocHGlobal(8); + Internal.ctor_0(__Instance); } public void Dispose() @@ -1321,6 +1337,11 @@ namespace CppSharp [FieldOffset(16)] public int Integral; + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="??0TemplateArgument@AST@CppParser@CppSharp@@QAE@XZ")] + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, EntryPoint="??0TemplateArgument@AST@CppParser@CppSharp@@QAE@ABU0123@@Z")] @@ -1372,6 +1393,7 @@ namespace CppSharp public TemplateArgument() { __Instance = Marshal.AllocHGlobal(20); + Internal.ctor_0(__Instance); } public void Dispose() @@ -4345,7 +4367,7 @@ namespace CppSharp [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, EntryPoint="??0Item@Enumeration@AST@CppParser@CppSharp@@QAE@XZ")] - internal static extern global::System.IntPtr ctor_1(global::System.IntPtr instance); + internal static extern global::System.IntPtr ctor_0(global::System.IntPtr instance); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, @@ -4400,7 +4422,7 @@ namespace CppSharp : this(IntPtr.Zero) { __Instance = Marshal.AllocHGlobal(128); - Internal.ctor_1(__Instance); + Internal.ctor_0(__Instance); } protected override void Dispose(bool disposing) @@ -5412,7 +5434,7 @@ namespace CppSharp public unsafe partial class ClassTemplate : CppSharp.Parser.AST.Template, IDisposable, CppSharp.Runtime.ICppMarshal { - [StructLayout(LayoutKind.Explicit, Size = 108)] + [StructLayout(LayoutKind.Explicit, Size = 120)] public new struct Internal { [SuppressUnmanagedCodeSecurity] @@ -5423,17 +5445,47 @@ namespace CppSharp [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, EntryPoint="??0ClassTemplate@AST@CppParser@CppSharp@@QAE@ABU0123@@Z")] - internal static extern global::System.IntPtr ctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + internal static extern global::System.IntPtr ctor_2(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, EntryPoint="??1ClassTemplate@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getSpecializations@ClassTemplate@AST@CppParser@CppSharp@@QAEPAUClassTemplateSpecialization@234@I@Z")] + internal static extern global::System.IntPtr getSpecializations_0(global::System.IntPtr instance, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?FindSpecialization@ClassTemplate@AST@CppParser@CppSharp@@QAEPAUClassTemplateSpecialization@234@PAX@Z")] + internal static extern global::System.IntPtr FindSpecialization_0(global::System.IntPtr instance, void* ptr); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?FindSpecialization@ClassTemplate@AST@CppParser@CppSharp@@QAEPAUClassTemplateSpecialization@234@UTemplateSpecializationType@234@@Z")] + internal static extern global::System.IntPtr FindSpecialization_1(global::System.IntPtr instance, CppSharp.Parser.AST.TemplateSpecializationType.Internal type); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?FindPartialSpecialization@ClassTemplate@AST@CppParser@CppSharp@@QAEPAUClassTemplatePartialSpecialization@234@PAX@Z")] + internal static extern global::System.IntPtr FindPartialSpecialization_0(global::System.IntPtr instance, void* ptr); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?FindPartialSpecialization@ClassTemplate@AST@CppParser@CppSharp@@QAEPAUClassTemplatePartialSpecialization@234@UTemplateSpecializationType@234@@Z")] + internal static extern global::System.IntPtr FindPartialSpecialization_1(global::System.IntPtr instance, CppSharp.Parser.AST.TemplateSpecializationType.Internal type); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getSpecializationsCount@ClassTemplate@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint getSpecializationsCount_0(global::System.IntPtr instance); } int CppSharp.Runtime.ICppMarshal.NativeDataSize { - get { return 108; } + get { return 120; } } void CppSharp.Runtime.ICppMarshal.MarshalManagedToNative(global::System.IntPtr instance) @@ -5462,7 +5514,7 @@ namespace CppSharp public ClassTemplate() : this(IntPtr.Zero) { - __Instance = Marshal.AllocHGlobal(108); + __Instance = Marshal.AllocHGlobal(120); Internal.ctor_0(__Instance); } @@ -5470,13 +5522,67 @@ namespace CppSharp { base.Dispose(disposing); } + + public CppSharp.Parser.AST.ClassTemplateSpecialization getSpecializations(uint i) + { + var __ret = Internal.getSpecializations_0(__Instance, i); + if (__ret == global::System.IntPtr.Zero) return null; + return new CppSharp.Parser.AST.ClassTemplateSpecialization(__ret); + } + + public CppSharp.Parser.AST.ClassTemplateSpecialization FindSpecialization(void* ptr) + { + var arg0 = ptr; + var __ret = Internal.FindSpecialization_0(__Instance, arg0); + if (__ret == global::System.IntPtr.Zero) return null; + return new CppSharp.Parser.AST.ClassTemplateSpecialization(__ret); + } + + public CppSharp.Parser.AST.ClassTemplateSpecialization FindSpecialization(CppSharp.Parser.AST.TemplateSpecializationType type) + { + var arg0 = type == (CppSharp.Parser.AST.TemplateSpecializationType) null ? new CppSharp.Parser.AST.TemplateSpecializationType.Internal() : *(CppSharp.Parser.AST.TemplateSpecializationType.Internal*) (type.__Instance); + var __ret = Internal.FindSpecialization_1(__Instance, arg0); + if (__ret == global::System.IntPtr.Zero) return null; + return new CppSharp.Parser.AST.ClassTemplateSpecialization(__ret); + } + + public CppSharp.Parser.AST.ClassTemplatePartialSpecialization FindPartialSpecialization(void* ptr) + { + var arg0 = ptr; + var __ret = Internal.FindPartialSpecialization_0(__Instance, arg0); + if (__ret == global::System.IntPtr.Zero) return null; + return new CppSharp.Parser.AST.ClassTemplatePartialSpecialization(__ret); + } + + public CppSharp.Parser.AST.ClassTemplatePartialSpecialization FindPartialSpecialization(CppSharp.Parser.AST.TemplateSpecializationType type) + { + var arg0 = type == (CppSharp.Parser.AST.TemplateSpecializationType) null ? new CppSharp.Parser.AST.TemplateSpecializationType.Internal() : *(CppSharp.Parser.AST.TemplateSpecializationType.Internal*) (type.__Instance); + var __ret = Internal.FindPartialSpecialization_1(__Instance, arg0); + if (__ret == global::System.IntPtr.Zero) return null; + return new CppSharp.Parser.AST.ClassTemplatePartialSpecialization(__ret); + } + + public uint SpecializationsCount + { + get + { + var __ret = Internal.getSpecializationsCount_0(__Instance); + return __ret; + } + } } public unsafe partial class ClassTemplateSpecialization : CppSharp.Parser.AST.Class, IDisposable, CppSharp.Runtime.ICppMarshal { - [StructLayout(LayoutKind.Explicit, Size = 288)] + [StructLayout(LayoutKind.Explicit, Size = 308)] public new struct Internal { + [FieldOffset(288)] + public global::System.IntPtr TemplatedDecl; + + [FieldOffset(304)] + public CppSharp.Parser.AST.TemplateSpecializationKind SpecializationKind; + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, EntryPoint="??0ClassTemplateSpecialization@AST@CppParser@CppSharp@@QAE@XZ")] @@ -5485,17 +5591,27 @@ namespace CppSharp [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, EntryPoint="??0ClassTemplateSpecialization@AST@CppParser@CppSharp@@QAE@ABU0123@@Z")] - internal static extern global::System.IntPtr ctor_1(global::System.IntPtr instance, global::System.IntPtr _0); + internal static extern global::System.IntPtr ctor_2(global::System.IntPtr instance, global::System.IntPtr _0); [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, EntryPoint="??1ClassTemplateSpecialization@AST@CppParser@CppSharp@@QAE@XZ")] internal static extern void dtor_0(global::System.IntPtr instance); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getArguments@ClassTemplateSpecialization@AST@CppParser@CppSharp@@QAE?AUTemplateArgument@234@I@Z")] + internal static extern void getArguments_0(global::System.IntPtr instance, global::System.IntPtr __return, uint i); + + [SuppressUnmanagedCodeSecurity] + [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, + EntryPoint="?getArgumentsCount@ClassTemplateSpecialization@AST@CppParser@CppSharp@@QAEIXZ")] + internal static extern uint getArgumentsCount_0(global::System.IntPtr instance); } int CppSharp.Runtime.ICppMarshal.NativeDataSize { - get { return 288; } + get { return 308; } } void CppSharp.Runtime.ICppMarshal.MarshalManagedToNative(global::System.IntPtr instance) @@ -5524,7 +5640,7 @@ namespace CppSharp public ClassTemplateSpecialization() : this(IntPtr.Zero) { - __Instance = Marshal.AllocHGlobal(288); + __Instance = Marshal.AllocHGlobal(308); Internal.ctor_0(__Instance); } @@ -5532,11 +5648,60 @@ namespace CppSharp { base.Dispose(disposing); } + + public CppSharp.Parser.AST.TemplateArgument getArguments(uint i) + { + var __ret = new CppSharp.Parser.AST.TemplateArgument.Internal(); + Internal.getArguments_0(__Instance, new IntPtr(&__ret), i); + var __instance = Marshal.AllocHGlobal(20); + CppSharp.Runtime.Helpers.memcpy(__instance, new IntPtr(&__ret), new UIntPtr(20)); + return new CppSharp.Parser.AST.TemplateArgument(__instance); + } + + public uint ArgumentsCount + { + get + { + var __ret = Internal.getArgumentsCount_0(__Instance); + return __ret; + } + } + + public CppSharp.Parser.AST.ClassTemplate TemplatedDecl + { + get + { + var __ptr = (Internal*)__Instance.ToPointer(); + var __copy = new global::System.IntPtr(&__ptr->TemplatedDecl); + return new CppSharp.Parser.AST.ClassTemplate(__copy); + } + + set + { + var __ptr = (Internal*)__Instance.ToPointer(); + __ptr->TemplatedDecl = value == (CppSharp.Parser.AST.ClassTemplate) null ? global::System.IntPtr.Zero : value.__Instance; + } + } + + public CppSharp.Parser.AST.TemplateSpecializationKind SpecializationKind + { + get + { + var __ptr = (Internal*)__Instance.ToPointer(); + return __ptr->SpecializationKind; + } + + set + { + var __ptr = (Internal*)__Instance.ToPointer(); + __ptr->SpecializationKind = value; + } + } } public unsafe partial class ClassTemplatePartialSpecialization : CppSharp.Parser.AST.ClassTemplateSpecialization, IDisposable, CppSharp.Runtime.ICppMarshal { - [StructLayout(LayoutKind.Explicit, Size = 288)] + [StructLayout(LayoutKind.Explicit, Size = 308)] public new struct Internal { [SuppressUnmanagedCodeSecurity] @@ -5557,7 +5722,7 @@ namespace CppSharp int CppSharp.Runtime.ICppMarshal.NativeDataSize { - get { return 288; } + get { return 308; } } void CppSharp.Runtime.ICppMarshal.MarshalManagedToNative(global::System.IntPtr instance) @@ -5586,7 +5751,7 @@ namespace CppSharp public ClassTemplatePartialSpecialization() : this(IntPtr.Zero) { - __Instance = Marshal.AllocHGlobal(288); + __Instance = Marshal.AllocHGlobal(308); Internal.ctor_0(__Instance); }