Browse Source

Fixed the generation of internals for template specialisations.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/998/head
Dimitar Dobrev 8 years ago
parent
commit
5ca93458a2
  1. 32
      src/AST/ClassExtensions.cs
  2. 776
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs
  3. 2
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std-symbols.cpp
  4. 510
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs
  5. 773
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
  6. 2
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std-symbols.cpp
  7. 282
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs
  8. 776
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs
  9. 2
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std-symbols.cpp
  10. 545
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs
  11. 773
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs
  12. 2
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std-symbols.cpp
  13. 1037
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs
  14. 773
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs
  15. 2
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std-symbols.cpp
  16. 1031
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std.cs
  17. 773
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
  18. 2
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std-symbols.cpp
  19. 282
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs
  20. 62
      src/Generator/Generators/CSharp/CSharpSources.cs
  21. 6
      src/Generator/Generators/CSharp/CSharpTypePrinter.cs
  22. 21
      src/Generator/Generators/CodeGenerator.cs

32
src/AST/ClassExtensions.cs

@ -137,9 +137,7 @@ namespace CppSharp.AST @@ -137,9 +137,7 @@ namespace CppSharp.AST
if (@class.HasBaseClass)
@base = @class.Bases[0].Class;
var hasRefBase = @base != null && @base.IsRefType && @base.IsGenerated;
return hasRefBase;
return @base?.IsRefType == true && @base.IsGenerated;
}
public static IEnumerable<TranslationUnit> GetGenerated(this IEnumerable<TranslationUnit> units)
@ -150,8 +148,7 @@ namespace CppSharp.AST @@ -150,8 +148,7 @@ namespace CppSharp.AST
public static List<ClassTemplateSpecialization> GetSpecializationsToGenerate(
this Class classTemplate)
{
if (classTemplate.Fields.Any(
f => f.Type.Desugar() is TemplateParameterType))
if (classTemplate.HasDependentValueFieldInLayout())
return classTemplate.Specializations;
var specializations = new List<ClassTemplateSpecialization>();
@ -162,5 +159,30 @@ namespace CppSharp.AST @@ -162,5 +159,30 @@ namespace CppSharp.AST
specializations.Add(specialization);
return specializations;
}
public static bool HasDependentValueFieldInLayout(this Class @class)
{
if (@class.Fields.Any(f => IsValueDependent(f.Type)))
return true;
return @class.Bases.Where(b => b.IsClass).Select(
b => b.Class).Any(HasDependentValueFieldInLayout);
}
private static bool IsValueDependent(Type type)
{
var desugared = type.Desugar();
if (desugared is TemplateParameterType)
return true;
var tagType = desugared as TagType;
if (tagType?.IsDependent == true)
return true;
var templateType = desugared as TemplateSpecializationType;
if (templateType?.Arguments.Any(
a => a.Type.Type?.Desugar().IsDependent == true) == true)
return true;
var arrayType = desugared as ArrayType;
return arrayType != null && IsValueDependent(arrayType.Type);
}
}
}

776
src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs

File diff suppressed because it is too large Load Diff

2
src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std-symbols.cpp

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
#include <string>
template __attribute__((visibility("default"))) std::allocator<char>::allocator() noexcept;
template __attribute__((visibility("default"))) std::basic_string<char, std::char_traits<char>, std::allocator<char>>::basic_string(const std::basic_string<char, std::char_traits<char>, std::allocator<char>>::value_type*, const std::basic_string<char, std::char_traits<char>, std::allocator<char>>::allocator_type&);
template __attribute__((visibility("default"))) std::basic_string<char, std::char_traits<char>, std::allocator<char>>::~basic_string() noexcept;
template __attribute__((visibility("default"))) const std::basic_string<char, std::char_traits<char>, std::allocator<char>>::value_type* std::basic_string<char, std::char_traits<char>, std::allocator<char>>::c_str() const noexcept;
template __attribute__((visibility("default"))) std::allocator<char>::allocator() noexcept;

510
src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs

@ -41,7 +41,7 @@ namespace Std @@ -41,7 +41,7 @@ namespace Std
public unsafe partial struct __Internal
{
[FieldOffset(0)]
internal global::Std.BasicString.Rep.__Internal __first_;
internal global::Std.BasicString.Rep.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C __first_;
}
}
@ -135,7 +135,475 @@ namespace Std @@ -135,7 +135,475 @@ namespace Std
namespace Vector
{
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internal
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_BlockContentComment___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_FunctionTemplateSpecialization___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_ClassTemplateSpecialization___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_VarTemplateSpecialization___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_MacroDefinition___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_TranslationUnit___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_InlineContentComment___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_S_Argument___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector__i___N_std_N___1_S_allocator__i
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_VerbatimBlockLineComment___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_S_Argument___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_N_AST_S_HTMLStartTagComment_S_Attribute___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_S_ParserDiagnostic___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_PreprocessedEntity___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Namespace___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Enumeration___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Function___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Class___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Template___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_TypedefDecl___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_TypeAlias___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Variable___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Friend___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_BaseClassSpecifier___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Field___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Method___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Parameter___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_AccessSpecifierDecl___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_N_AST_S_VFTableInfo___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_N_AST_S_VTableComponent___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_N_AST_S_LayoutField___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_N_AST_S_LayoutBase___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Enumeration_S_Item___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C __begin_;
[FieldOffset(4)]
internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Expression___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
@ -154,7 +622,7 @@ namespace Std @@ -154,7 +622,7 @@ namespace Std
namespace Tree
{
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internal
public unsafe partial struct __Internalc__N_std_N___1_S___tree____N_std_N___1_U___value_type____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S___map_value_compare__S1__S0____N_std_N___1_S_less__S1__Vb1___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_node_;
@ -183,10 +651,10 @@ namespace Std @@ -183,10 +651,10 @@ namespace Std
namespace Map
{
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internal
public unsafe partial struct __Internalc__N_std_N___1_S_map____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S_less__S0____N_std_N___1_S_allocator____N_std_N___1_S_pair__1S0__S3_
{
[FieldOffset(0)]
internal global::Std.Tree.__Internal __tree_;
internal global::Std.Tree.__Internalc__N_std_N___1_S___tree____N_std_N___1_U___value_type____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S___map_value_compare__S1__S0____N_std_N___1_S_less__S1__Vb1___N_std_N___1_S_allocator__S0_ __tree_;
}
}
}
@ -235,7 +703,7 @@ namespace Std @@ -235,7 +703,7 @@ namespace Std
namespace BasicString
{
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internal
public unsafe partial struct __Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internal __r_;
@ -251,11 +719,10 @@ namespace Std @@ -251,11 +719,10 @@ namespace Std
internal static extern global::System.IntPtr CStrc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C(global::System.IntPtr instance);
}
public unsafe partial class Rep
namespace Rep
{
[StructLayout(LayoutKind.Explicit, Size = 12)]
public partial struct __Internal
public unsafe partial struct __Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C
{
[FieldOffset(0)]
internal global::Std.BasicString.Rep._.__Internal _;
@ -280,10 +747,10 @@ namespace Std @@ -280,10 +747,10 @@ namespace Std
}
}
public unsafe partial class Long
namespace Long
{
[StructLayout(LayoutKind.Explicit, Size = 12)]
public partial struct __Internal
public unsafe partial struct __Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C
{
[FieldOffset(0)]
internal uint __cap_;
@ -297,10 +764,10 @@ namespace Std @@ -297,10 +764,10 @@ namespace Std
}
public unsafe partial class Short
namespace Short
{
[StructLayout(LayoutKind.Explicit, Size = 12)]
public partial struct __Internal
public unsafe partial struct __Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C
{
[FieldOffset(0)]
internal global::Std.BasicString.Short._.__Internal _;
@ -325,15 +792,16 @@ namespace Std @@ -325,15 +792,16 @@ namespace Std
}
}
public unsafe partial class Raw
namespace Raw
{
[StructLayout(LayoutKind.Explicit, Size = 12)]
public partial struct __Internal
public unsafe partial struct __Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C
{
[FieldOffset(0)]
internal fixed uint __words[3];
}
}
}
public unsafe partial class BasicString<_CharT, _Traits, _Allocator> : IDisposable
@ -351,19 +819,19 @@ namespace Std @@ -351,19 +819,19 @@ namespace Std
return new global::Std.BasicString<_CharT, _Traits, _Allocator>(native.ToPointer(), skipVTables);
}
internal static global::Std.BasicString<_CharT, _Traits, _Allocator> __CreateInstance(global::Std.BasicString.__Internal native, bool skipVTables = false)
internal static global::Std.BasicString<_CharT, _Traits, _Allocator> __CreateInstance(global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C native, bool skipVTables = false)
{
return new global::Std.BasicString<_CharT, _Traits, _Allocator>(native, skipVTables);
}
private static void* __CopyValue(global::Std.BasicString.__Internal native)
private static void* __CopyValue(global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C native)
{
var ret = Marshal.AllocHGlobal(sizeof(global::Std.BasicString.__Internal));
*(global::Std.BasicString.__Internal*) ret = native;
var ret = Marshal.AllocHGlobal(sizeof(global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C));
*(global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C*) ret = native;
return ret.ToPointer();
}
private BasicString(global::Std.BasicString.__Internal native, bool skipVTables = false)
private BasicString(global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C native, bool skipVTables = false)
: this(__CopyValue(native), skipVTables)
{
__ownsNativeInstance = true;
@ -395,7 +863,7 @@ namespace Std @@ -395,7 +863,7 @@ namespace Std
var ___Allocator = typeof(_Allocator);
if (___CharT.IsAssignableFrom(typeof(sbyte)) && ___Traits.IsAssignableFrom(typeof(global::Std.CharTraits<sbyte>)) && ___Allocator.IsAssignableFrom(typeof(global::Std.Allocator<sbyte>)))
{
global::Std.BasicString.__Internal.dtorc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C((__Instance + __PointerAdjustment));
global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C.dtorc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C((__Instance + __PointerAdjustment));
return;
}
throw new ArgumentOutOfRangeException("_CharT, _Traits, _Allocator", string.Join(", ", new[] { typeof(_CharT).FullName, typeof(_Traits).FullName, typeof(_Allocator).FullName }), "global::Std.BasicString<_CharT, _Traits, _Allocator> maps a C++ template class and therefore it only supports a limited set of types and their subclasses: <sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>.");

773
src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs

File diff suppressed because it is too large Load Diff

2
src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std-symbols.cpp

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
#include <string>
template __declspec(dllexport) std::allocator<char>::allocator() noexcept;
template __declspec(dllexport) std::basic_string<char, std::char_traits<char>, std::allocator<char>>::basic_string(const char* const, const std::allocator<char>&);
template __declspec(dllexport) std::basic_string<char, std::char_traits<char>, std::allocator<char>>::~basic_string() noexcept;
template __declspec(dllexport) const char* std::basic_string<char, std::char_traits<char>, std::allocator<char>>::c_str() const noexcept;
template __declspec(dllexport) std::allocator<char>::allocator() noexcept;

282
src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs

@ -90,7 +90,7 @@ namespace Std @@ -90,7 +90,7 @@ namespace Std
public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S_allocator__C___N_std_S__String_val____N_std_S__Simple_types__C_Vb1
{
[FieldOffset(0)]
internal global::Std.StringVal.__Internal _Myval2;
internal global::Std.StringVal.__Internalc__N_std_S__String_val____N_std_S__Simple_types__C _Myval2;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
@ -499,7 +499,7 @@ namespace Std @@ -499,7 +499,7 @@ namespace Std
namespace BasicString
{
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internal
public unsafe partial struct __Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator__C___N_std_S__String_val____N_std_S__Simple_types__C_Vb1 _Mypair;
@ -531,19 +531,19 @@ namespace Std @@ -531,19 +531,19 @@ namespace Std
return new global::Std.BasicString<_Elem, _Traits, _Alloc>(native.ToPointer(), skipVTables);
}
internal static global::Std.BasicString<_Elem, _Traits, _Alloc> __CreateInstance(global::Std.BasicString.__Internal native, bool skipVTables = false)
internal static global::Std.BasicString<_Elem, _Traits, _Alloc> __CreateInstance(global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C native, bool skipVTables = false)
{
return new global::Std.BasicString<_Elem, _Traits, _Alloc>(native, skipVTables);
}
private static void* __CopyValue(global::Std.BasicString.__Internal native)
private static void* __CopyValue(global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C native)
{
var ret = Marshal.AllocHGlobal(sizeof(global::Std.BasicString.__Internal));
*(global::Std.BasicString.__Internal*) ret = native;
var ret = Marshal.AllocHGlobal(sizeof(global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C));
*(global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C*) ret = native;
return ret.ToPointer();
}
private BasicString(global::Std.BasicString.__Internal native, bool skipVTables = false)
private BasicString(global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C native, bool skipVTables = false)
: this(__CopyValue(native), skipVTables)
{
__ownsNativeInstance = true;
@ -575,7 +575,7 @@ namespace Std @@ -575,7 +575,7 @@ namespace Std
var ___Alloc = typeof(_Alloc);
if (___Elem.IsAssignableFrom(typeof(sbyte)) && ___Traits.IsAssignableFrom(typeof(global::Std.CharTraits<sbyte>)) && ___Alloc.IsAssignableFrom(typeof(global::Std.Allocator<sbyte>)))
{
global::Std.BasicString.__Internal.dtorc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C((__Instance + __PointerAdjustment), 0);
global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C.dtorc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C((__Instance + __PointerAdjustment), 0);
return;
}
throw new ArgumentOutOfRangeException("_Elem, _Traits, _Alloc", string.Join(", ", new[] { typeof(_Elem).FullName, typeof(_Traits).FullName, typeof(_Alloc).FullName }), "global::Std.BasicString<_Elem, _Traits, _Alloc> maps a C++ template class and therefore it only supports a limited set of types and their subclasses: <sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>.");
@ -589,10 +589,10 @@ namespace Std @@ -589,10 +589,10 @@ namespace Std
namespace StringVal
{
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internal
public unsafe partial struct __Internalc__N_std_S__String_val____N_std_S__Simple_types__C
{
[FieldOffset(0)]
internal global::Std.StringVal.Bxty.__Internal _Bx;
internal global::Std.StringVal.Bxty.__Internalc__N_std_S__String_val____N_std_S__Simple_types__C _Bx;
[FieldOffset(16)]
internal uint _Mysize;
@ -601,11 +601,10 @@ namespace Std @@ -601,11 +601,10 @@ namespace Std
internal uint _Myres;
}
public unsafe partial struct Bxty
namespace Bxty
{
[StructLayout(LayoutKind.Explicit, Size = 16)]
public partial struct __Internal
public unsafe partial struct __Internalc__N_std_S__String_val____N_std_S__Simple_types__C
{
[FieldOffset(0)]
internal fixed sbyte _Buf[16];
@ -617,6 +616,7 @@ namespace Std @@ -617,6 +616,7 @@ namespace Std
internal fixed sbyte _Alias[16];
}
}
}
}
@ -625,11 +625,263 @@ namespace Std @@ -625,11 +625,263 @@ namespace Std
namespace Vector
{
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internal
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_PreprocessedEntity___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_PreprocessedEntity___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_BlockContentComment___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_BlockContentComment___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Namespace___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Namespace___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Enumeration___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Enumeration___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Function___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Function___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Class___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Class___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Template___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Template___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_TypedefDecl___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_TypedefDecl___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_TypeAlias___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_TypeAlias___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Variable___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Variable___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Friend___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Friend___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_BaseClassSpecifier___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_BaseClassSpecifier___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Field___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Field___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Method___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Method___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Parameter___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Parameter___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_FunctionTemplateSpecialization___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_FunctionTemplateSpecialization___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_AccessSpecifierDecl___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_AccessSpecifierDecl___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_VFTableInfo___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_CppSharp_N_CppParser_N_AST_S_VFTableInfo___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_VTableComponent___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_CppSharp_N_CppParser_N_AST_S_VTableComponent___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_LayoutField___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_CppSharp_N_CppParser_N_AST_S_LayoutField___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_LayoutBase___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_CppSharp_N_CppParser_N_AST_S_LayoutBase___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Enumeration_S_Item___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Enumeration_S_Item___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_ClassTemplateSpecialization___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_ClassTemplateSpecialization___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Expression___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Expression___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_VarTemplateSpecialization___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_VarTemplateSpecialization___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_MacroDefinition___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_MacroDefinition___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_TranslationUnit___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_TranslationUnit___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_InlineContentComment___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_InlineContentComment___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_S_Argument___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_S_Argument___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector__i___N_std_S_allocator__i
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator__i___N_std_S__Vector_val____N_std_S__Simple_types__i_Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_VerbatimBlockLineComment___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_VerbatimBlockLineComment___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_S_Argument___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_S_Argument___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_HTMLStartTagComment_S_Attribute___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_CppSharp_N_CppParser_N_AST_S_HTMLStartTagComment_S_Attribute___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector____N_CppSharp_N_CppParser_S_ParserDiagnostic___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_CppSharp_N_CppParser_S_ParserDiagnostic___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
}
namespace VectorVal
@ -670,7 +922,7 @@ namespace Std @@ -670,7 +922,7 @@ namespace Std
namespace Map
{
[StructLayout(LayoutKind.Explicit, Size = 8)]
public unsafe partial struct __Internal
public unsafe partial struct __Internalc__N_std_S_map____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_S_less__S0____N_std_S_allocator____N_std_S_pair__1S0__S3_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_less____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S__Compressed_pair____N_std_S_allocator____N_std_S__Tree_node____N_std_S_pair__1S1_____N_CppSharp_N_CppParser_N_AST_S_Declaration__v___N_std_S__Tree_val____N_std_S__Tree_simple_types__S7__Vb1_Vb1 _Mypair;

776
src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs

File diff suppressed because it is too large Load Diff

2
src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std-symbols.cpp

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
#include <string>
template __attribute__((visibility("default"))) std::allocator<char>::allocator() noexcept;
template __attribute__((visibility("default"))) std::basic_string<char, std::char_traits<char>, std::allocator<char>>::basic_string(const std::basic_string<char, std::char_traits<char>, std::allocator<char>>::value_type*, const std::basic_string<char, std::char_traits<char>, std::allocator<char>>::allocator_type&);
template __attribute__((visibility("default"))) std::basic_string<char, std::char_traits<char>, std::allocator<char>>::~basic_string() noexcept;
template __attribute__((visibility("default"))) const std::basic_string<char, std::char_traits<char>, std::allocator<char>>::value_type* std::basic_string<char, std::char_traits<char>, std::allocator<char>>::c_str() const noexcept;
template __attribute__((visibility("default"))) std::allocator<char>::allocator() noexcept;

545
src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs

@ -41,7 +41,7 @@ namespace Std @@ -41,7 +41,7 @@ namespace Std
public unsafe partial struct __Internal
{
[FieldOffset(0)]
internal global::Std.BasicString.Rep.__Internal __first_;
internal global::Std.BasicString.Rep.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C __first_;
}
}
@ -135,7 +135,475 @@ namespace Std @@ -135,7 +135,475 @@ namespace Std
namespace Vector
{
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internal
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_BlockContentComment___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_FunctionTemplateSpecialization___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_ClassTemplateSpecialization___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_VarTemplateSpecialization___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_MacroDefinition___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_TranslationUnit___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_InlineContentComment___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_S_Argument___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector__i___N_std_N___1_S_allocator__i
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_VerbatimBlockLineComment___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_S_Argument___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_N_AST_S_HTMLStartTagComment_S_Attribute___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_S_ParserDiagnostic___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_PreprocessedEntity___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Namespace___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Enumeration___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Function___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Class___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Template___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_TypedefDecl___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_TypeAlias___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Variable___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Friend___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_BaseClassSpecifier___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Field___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Method___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Parameter___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_AccessSpecifierDecl___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_N_AST_S_VFTableInfo___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_N_AST_S_VTableComponent___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_N_AST_S_LayoutField___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_N_AST_S_LayoutBase___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Enumeration_S_Item___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C __begin_;
[FieldOffset(8)]
internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internal __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Expression___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
@ -154,7 +622,7 @@ namespace Std @@ -154,7 +622,7 @@ namespace Std
namespace Tree
{
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internal
public unsafe partial struct __Internalc__N_std_N___1_S___tree____N_std_N___1_U___value_type____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S___map_value_compare__S1__S0____N_std_N___1_S_less__S1__Vb1___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_node_;
@ -183,10 +651,10 @@ namespace Std @@ -183,10 +651,10 @@ namespace Std
namespace Map
{
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internal
public unsafe partial struct __Internalc__N_std_N___1_S_map____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S_less__S0____N_std_N___1_S_allocator____N_std_N___1_S_pair__1S0__S3_
{
[FieldOffset(0)]
internal global::Std.Tree.__Internal __tree_;
internal global::Std.Tree.__Internalc__N_std_N___1_S___tree____N_std_N___1_U___value_type____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_N___1_S___map_value_compare__S1__S0____N_std_N___1_S_less__S1__Vb1___N_std_N___1_S_allocator__S0_ __tree_;
}
}
}
@ -235,7 +703,7 @@ namespace Std @@ -235,7 +703,7 @@ namespace Std
namespace BasicString
{
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internal
public unsafe partial struct __Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internal __r_;
@ -251,39 +719,21 @@ namespace Std @@ -251,39 +719,21 @@ namespace Std
internal static extern global::System.IntPtr CStrc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C(global::System.IntPtr instance);
}
public unsafe partial class Rep
namespace Rep
{
[StructLayout(LayoutKind.Explicit, Size = 24)]
public partial struct __Internal
public unsafe partial struct __Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C
{
[FieldOffset(0)]
internal global::Std.BasicString.Rep._.__Internal _;
internal global::Std.BasicString.Rep._.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C _;
}
public unsafe partial struct _
{
[StructLayout(LayoutKind.Explicit, Size = 24)]
public partial struct __Internal
{
[FieldOffset(0)]
internal global::Std.BasicString.Long.__Internal __l;
[FieldOffset(0)]
internal global::Std.BasicString.Short.__Internal __s;
[FieldOffset(0)]
internal global::Std.BasicString.Raw.__Internal __r;
}
}
}
public unsafe partial class Long
namespace Long
{
[StructLayout(LayoutKind.Explicit, Size = 24)]
public partial struct __Internal
public unsafe partial struct __Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C
{
[FieldOffset(0)]
internal ulong __cap_;
@ -297,43 +747,30 @@ namespace Std @@ -297,43 +747,30 @@ namespace Std
}
public unsafe partial class Short
namespace Short
{
[StructLayout(LayoutKind.Explicit, Size = 24)]
public partial struct __Internal
public unsafe partial struct __Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C
{
[FieldOffset(0)]
internal global::Std.BasicString.Short._.__Internal _;
internal global::Std.BasicString.Short._.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C _;
[FieldOffset(1)]
internal fixed sbyte __data_[23];
}
public unsafe partial struct _
{
[StructLayout(LayoutKind.Explicit, Size = 1)]
public partial struct __Internal
{
[FieldOffset(0)]
internal byte __size_;
[FieldOffset(0)]
internal sbyte __lx;
}
}
}
public unsafe partial class Raw
namespace Raw
{
[StructLayout(LayoutKind.Explicit, Size = 24)]
public partial struct __Internal
public unsafe partial struct __Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C
{
[FieldOffset(0)]
internal fixed ulong __words[3];
}
}
}
public unsafe partial class BasicString<_CharT, _Traits, _Allocator> : IDisposable
@ -351,19 +788,19 @@ namespace Std @@ -351,19 +788,19 @@ namespace Std
return new global::Std.BasicString<_CharT, _Traits, _Allocator>(native.ToPointer(), skipVTables);
}
internal static global::Std.BasicString<_CharT, _Traits, _Allocator> __CreateInstance(global::Std.BasicString.__Internal native, bool skipVTables = false)
internal static global::Std.BasicString<_CharT, _Traits, _Allocator> __CreateInstance(global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C native, bool skipVTables = false)
{
return new global::Std.BasicString<_CharT, _Traits, _Allocator>(native, skipVTables);
}
private static void* __CopyValue(global::Std.BasicString.__Internal native)
private static void* __CopyValue(global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C native)
{
var ret = Marshal.AllocHGlobal(sizeof(global::Std.BasicString.__Internal));
*(global::Std.BasicString.__Internal*) ret = native;
var ret = Marshal.AllocHGlobal(sizeof(global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C));
*(global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C*) ret = native;
return ret.ToPointer();
}
private BasicString(global::Std.BasicString.__Internal native, bool skipVTables = false)
private BasicString(global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C native, bool skipVTables = false)
: this(__CopyValue(native), skipVTables)
{
__ownsNativeInstance = true;
@ -395,7 +832,7 @@ namespace Std @@ -395,7 +832,7 @@ namespace Std
var ___Allocator = typeof(_Allocator);
if (___CharT.IsAssignableFrom(typeof(sbyte)) && ___Traits.IsAssignableFrom(typeof(global::Std.CharTraits<sbyte>)) && ___Allocator.IsAssignableFrom(typeof(global::Std.Allocator<sbyte>)))
{
global::Std.BasicString.__Internal.dtorc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C((__Instance + __PointerAdjustment));
global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C.dtorc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C((__Instance + __PointerAdjustment));
return;
}
throw new ArgumentOutOfRangeException("_CharT, _Traits, _Allocator", string.Join(", ", new[] { typeof(_CharT).FullName, typeof(_Traits).FullName, typeof(_Allocator).FullName }), "global::Std.BasicString<_CharT, _Traits, _Allocator> maps a C++ template class and therefore it only supports a limited set of types and their subclasses: <sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>.");

773
src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs

File diff suppressed because it is too large Load Diff

2
src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std-symbols.cpp

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
#include <string>
template std::allocator<char>::allocator();
template std::basic_string<char, std::char_traits<char>, std::allocator<char>>::basic_string(const char*, const std::allocator<char>&);
template std::basic_string<char, std::char_traits<char>, std::allocator<char>>::~basic_string();
template const char* std::basic_string<char, std::char_traits<char>, std::allocator<char>>::c_str() const noexcept;
template std::allocator<char>::allocator();

1037
src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs

File diff suppressed because it is too large Load Diff

773
src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs

File diff suppressed because it is too large Load Diff

2
src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std-symbols.cpp

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
#include <string>
template std::allocator<char>::allocator();
template std::basic_string<char, std::char_traits<char>, std::allocator<char>>::basic_string(const char*, const std::allocator<char>&);
template std::basic_string<char, std::char_traits<char>, std::allocator<char>>::~basic_string() noexcept;
template const char* std::basic_string<char, std::char_traits<char>, std::allocator<char>>::c_str() const noexcept;
template std::allocator<char>::allocator();

1031
src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std.cs

File diff suppressed because it is too large Load Diff

773
src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs

File diff suppressed because it is too large Load Diff

2
src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std-symbols.cpp

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
#include <string>
template __declspec(dllexport) std::allocator<char>::allocator() noexcept;
template __declspec(dllexport) std::basic_string<char, std::char_traits<char>, std::allocator<char>>::basic_string(const char* const, const std::allocator<char>&);
template __declspec(dllexport) std::basic_string<char, std::char_traits<char>, std::allocator<char>>::~basic_string() noexcept;
template __declspec(dllexport) const char* std::basic_string<char, std::char_traits<char>, std::allocator<char>>::c_str() const noexcept;
template __declspec(dllexport) std::allocator<char>::allocator() noexcept;

282
src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs

@ -90,7 +90,7 @@ namespace Std @@ -90,7 +90,7 @@ namespace Std
public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S_allocator__C___N_std_S__String_val____N_std_S__Simple_types__C_Vb1
{
[FieldOffset(0)]
internal global::Std.StringVal.__Internal _Myval2;
internal global::Std.StringVal.__Internalc__N_std_S__String_val____N_std_S__Simple_types__C _Myval2;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
@ -499,7 +499,7 @@ namespace Std @@ -499,7 +499,7 @@ namespace Std
namespace BasicString
{
[StructLayout(LayoutKind.Explicit, Size = 32)]
public unsafe partial struct __Internal
public unsafe partial struct __Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator__C___N_std_S__String_val____N_std_S__Simple_types__C_Vb1 _Mypair;
@ -531,19 +531,19 @@ namespace Std @@ -531,19 +531,19 @@ namespace Std
return new global::Std.BasicString<_Elem, _Traits, _Alloc>(native.ToPointer(), skipVTables);
}
internal static global::Std.BasicString<_Elem, _Traits, _Alloc> __CreateInstance(global::Std.BasicString.__Internal native, bool skipVTables = false)
internal static global::Std.BasicString<_Elem, _Traits, _Alloc> __CreateInstance(global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C native, bool skipVTables = false)
{
return new global::Std.BasicString<_Elem, _Traits, _Alloc>(native, skipVTables);
}
private static void* __CopyValue(global::Std.BasicString.__Internal native)
private static void* __CopyValue(global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C native)
{
var ret = Marshal.AllocHGlobal(sizeof(global::Std.BasicString.__Internal));
*(global::Std.BasicString.__Internal*) ret = native;
var ret = Marshal.AllocHGlobal(sizeof(global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C));
*(global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C*) ret = native;
return ret.ToPointer();
}
private BasicString(global::Std.BasicString.__Internal native, bool skipVTables = false)
private BasicString(global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C native, bool skipVTables = false)
: this(__CopyValue(native), skipVTables)
{
__ownsNativeInstance = true;
@ -575,7 +575,7 @@ namespace Std @@ -575,7 +575,7 @@ namespace Std
var ___Alloc = typeof(_Alloc);
if (___Elem.IsAssignableFrom(typeof(sbyte)) && ___Traits.IsAssignableFrom(typeof(global::Std.CharTraits<sbyte>)) && ___Alloc.IsAssignableFrom(typeof(global::Std.Allocator<sbyte>)))
{
global::Std.BasicString.__Internal.dtorc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C((__Instance + __PointerAdjustment), 0);
global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C.dtorc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C((__Instance + __PointerAdjustment), 0);
return;
}
throw new ArgumentOutOfRangeException("_Elem, _Traits, _Alloc", string.Join(", ", new[] { typeof(_Elem).FullName, typeof(_Traits).FullName, typeof(_Alloc).FullName }), "global::Std.BasicString<_Elem, _Traits, _Alloc> maps a C++ template class and therefore it only supports a limited set of types and their subclasses: <sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>.");
@ -589,10 +589,10 @@ namespace Std @@ -589,10 +589,10 @@ namespace Std
namespace StringVal
{
[StructLayout(LayoutKind.Explicit, Size = 32)]
public unsafe partial struct __Internal
public unsafe partial struct __Internalc__N_std_S__String_val____N_std_S__Simple_types__C
{
[FieldOffset(0)]
internal global::Std.StringVal.Bxty.__Internal _Bx;
internal global::Std.StringVal.Bxty.__Internalc__N_std_S__String_val____N_std_S__Simple_types__C _Bx;
[FieldOffset(16)]
internal ulong _Mysize;
@ -601,11 +601,10 @@ namespace Std @@ -601,11 +601,10 @@ namespace Std
internal ulong _Myres;
}
public unsafe partial struct Bxty
namespace Bxty
{
[StructLayout(LayoutKind.Explicit, Size = 16)]
public partial struct __Internal
public unsafe partial struct __Internalc__N_std_S__String_val____N_std_S__Simple_types__C
{
[FieldOffset(0)]
internal fixed sbyte _Buf[16];
@ -617,6 +616,7 @@ namespace Std @@ -617,6 +616,7 @@ namespace Std
internal fixed sbyte _Alias[16];
}
}
}
}
@ -625,11 +625,263 @@ namespace Std @@ -625,11 +625,263 @@ namespace Std
namespace Vector
{
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internal
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_PreprocessedEntity___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_PreprocessedEntity___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_BlockContentComment___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_BlockContentComment___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Namespace___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Namespace___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Enumeration___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Enumeration___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Function___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Function___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Class___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Class___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Template___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Template___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_TypedefDecl___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_TypedefDecl___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_TypeAlias___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_TypeAlias___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Variable___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Variable___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Friend___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Friend___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_BaseClassSpecifier___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_BaseClassSpecifier___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Field___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Field___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Method___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Method___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Parameter___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Parameter___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_FunctionTemplateSpecialization___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_FunctionTemplateSpecialization___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_CppSharp_N_CppParser_N_AST_S_TemplateArgument___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_AccessSpecifierDecl___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_AccessSpecifierDecl___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_VFTableInfo___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_CppSharp_N_CppParser_N_AST_S_VFTableInfo___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_VTableComponent___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_CppSharp_N_CppParser_N_AST_S_VTableComponent___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_LayoutField___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_CppSharp_N_CppParser_N_AST_S_LayoutField___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_LayoutBase___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_CppSharp_N_CppParser_N_AST_S_LayoutBase___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Enumeration_S_Item___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Enumeration_S_Item___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_ClassTemplateSpecialization___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_ClassTemplateSpecialization___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_Expression___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_Expression___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_VarTemplateSpecialization___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_VarTemplateSpecialization___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_MacroDefinition___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_MacroDefinition___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_TranslationUnit___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_TranslationUnit___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_InlineContentComment___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_InlineContentComment___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_S_Argument___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_CppSharp_N_CppParser_N_AST_S_BlockCommandComment_S_Argument___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector__i___N_std_S_allocator__i
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator__i___N_std_S__Vector_val____N_std_S__Simple_types__i_Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_VerbatimBlockLineComment___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_VerbatimBlockLineComment___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_S_Argument___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_CppSharp_N_CppParser_N_AST_S_InlineCommandComment_S_Argument___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector____N_CppSharp_N_CppParser_N_AST_S_HTMLStartTagComment_S_Attribute___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_CppSharp_N_CppParser_N_AST_S_HTMLStartTagComment_S_Attribute___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector____N_CppSharp_N_CppParser_S_ParserDiagnostic___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_CppSharp_N_CppParser_S_ParserDiagnostic___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
}
namespace VectorVal
@ -670,7 +922,7 @@ namespace Std @@ -670,7 +922,7 @@ namespace Std
namespace Map
{
[StructLayout(LayoutKind.Explicit, Size = 16)]
public unsafe partial struct __Internal
public unsafe partial struct __Internalc__N_std_S_map____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_S_less__S0____N_std_S_allocator____N_std_S_pair__1S0__S3_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_less____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S__Compressed_pair____N_std_S_allocator____N_std_S__Tree_node____N_std_S_pair__1S1_____N_CppSharp_N_CppParser_N_AST_S_Declaration__v___N_std_S__Tree_val____N_std_S__Tree_simple_types__S7__Vb1_Vb1 _Mypair;

62
src/Generator/Generators/CSharp/CSharpSources.cs

@ -119,7 +119,7 @@ namespace CppSharp.Generators.CSharp @@ -119,7 +119,7 @@ namespace CppSharp.Generators.CSharp
}
GenerateClassTemplateSpecializationsInternals(
template.Key, template.ToList(), false);
template.Key, template.ToList());
foreach (var declarationContext in declarationContexts)
WriteCloseBraceIndent();
@ -253,11 +253,11 @@ namespace CppSharp.Generators.CSharp @@ -253,11 +253,11 @@ namespace CppSharp.Generators.CSharp
return;
GenerateClassTemplateSpecializationsInternals(classTemplate,
classTemplate.Specializations, true);
classTemplate.Specializations);
}
private void GenerateClassTemplateSpecializationsInternals(Class classTemplate,
IList<ClassTemplateSpecialization> specializations, bool generateNested)
IList<ClassTemplateSpecialization> specializations)
{
PushBlock(BlockKind.Namespace);
var generated = GetGenerated(specializations);
@ -270,21 +270,14 @@ namespace CppSharp.Generators.CSharp @@ -270,21 +270,14 @@ namespace CppSharp.Generators.CSharp
foreach (var specialization in generated)
GenerateClassInternals(specialization);
if (generateNested)
foreach (var group in generated.SelectMany(s => s.Classes).GroupBy(c => c.Name))
{
var specialization = generated.FirstOrDefault(s => !s.Ignore) ??
generated.First();
foreach (var nestedClass in classTemplate.Classes.Union(
specialization.Classes).Where(c => !c.IsDependent))
{
GenerateClassInternalsOnly(nestedClass);
foreach (var nestedNestedClass in nestedClass.Classes)
{
GenerateClassInternalsOnly(nestedNestedClass);
WriteCloseBraceIndent();
}
WriteCloseBraceIndent();
}
WriteLine($"namespace {group.Key}");
WriteStartBraceIndent();
foreach (var nestedClass in group)
GenerateClassInternals(nestedClass);
WriteCloseBraceIndent();
NewLine();
}
WriteCloseBraceIndent();
@ -299,22 +292,12 @@ namespace CppSharp.Generators.CSharp @@ -299,22 +292,12 @@ namespace CppSharp.Generators.CSharp
specialization = specializations[0];
Class classTemplate = specialization.TemplatedDecl.TemplatedClass;
if (classTemplate.Fields.Any(
f => f.Type.Desugar() is TemplateParameterType))
if (classTemplate.HasDependentValueFieldInLayout())
return specializations;
return new List<ClassTemplateSpecialization> { specialization };
}
private void GenerateClassInternalsOnly(Class c)
{
NewLine();
GenerateClassSpecifier(c);
NewLine();
WriteStartBraceIndent();
GenerateClassInternals(c);
}
public override void GenerateDeclarationCommon(Declaration decl)
{
base.GenerateDeclarationCommon(decl);
@ -597,8 +580,17 @@ namespace CppSharp.Generators.CSharp @@ -597,8 +580,17 @@ namespace CppSharp.Generators.CSharp
{
Write("public ");
var isSpecialization = @class is ClassTemplateSpecialization;
if (@class != null && @class.NeedsBase && !@class.BaseClass.IsInterface & !isSpecialization)
bool isSpecialization = false;
DeclarationContext declContext = @class;
while (declContext != null)
{
isSpecialization = declContext is ClassTemplateSpecialization;
if (isSpecialization)
break;
declContext = declContext.Namespace;
}
if (@class != null && @class.NeedsBase &&
!@class.BaseClass.IsInterface && !isSpecialization)
Write("new ");
WriteLine($@"{(isSpecialization ? "unsafe " : string.Empty)}partial struct {
@ -947,17 +939,17 @@ namespace CppSharp.Generators.CSharp @@ -947,17 +939,17 @@ namespace CppSharp.Generators.CSharp
Write(marshal.Context.Before);
var internalFunction = GetFunctionNativeIdentifier(function);
var paramMarshal = GenerateFunctionParamMarshal(
function.Parameters[0], 0, function);
if (type.IsPrimitiveType())
{
WriteLine($@"*{@internal}.{internalFunction}({
GetInstanceParam(function)}, {function.Parameters[0].Name}) = {
marshal.Context.Return};");
GetInstanceParam(function)}, {(paramMarshal.Context == null ?
paramMarshal.Name : paramMarshal.Context.Return)}) = {marshal.Context.Return};");
}
else
{
var typeInternal = TypePrinter.PrintNative(type);
var paramMarshal = GenerateFunctionParamMarshal(
function.Parameters[0], 0, function);
WriteLine($@"*({typeInternal}*) {@internal}.{internalFunction}({
GetInstanceParam(function)}, {(paramMarshal.Context == null ?
paramMarshal.Name : paramMarshal.Context.Return)}) = {marshal.Context.Return};");
@ -1058,7 +1050,7 @@ namespace CppSharp.Generators.CSharp @@ -1058,7 +1050,7 @@ namespace CppSharp.Generators.CSharp
ReturnType = new QualifiedType(var.Type)
};
ctx.PushMarshalKind(MarshalKind.ReturnVariableArray);
var prefix = string.Empty;
if (!isRefTypeArray && elementType == null)
ctx.ReturnVarName = $"*{ptr}";
else if (elementType == null || elementType.IsPrimitiveType() ||

6
src/Generator/Generators/CSharp/CSharpTypePrinter.cs

@ -563,7 +563,8 @@ namespace CppSharp.Generators.CSharp @@ -563,7 +563,8 @@ namespace CppSharp.Generators.CSharp
public override TypePrinterResult VisitClassDecl(Class @class)
{
if (ContextKind == TypePrinterContextKind.Native)
return $"{VisitDeclaration(@class.OriginalClass ?? @class)}.{Helpers.InternalStruct}";
return $@"{VisitDeclaration(@class.OriginalClass ?? @class)}.{
Helpers.InternalStruct}{Helpers.GetSuffixForInternal(@class)}";
var printed = VisitDeclaration(@class).Type;
if (!@class.IsDependent)
@ -576,8 +577,7 @@ namespace CppSharp.Generators.CSharp @@ -576,8 +577,7 @@ namespace CppSharp.Generators.CSharp
ClassTemplateSpecialization specialization)
{
if (ContextKind == TypePrinterContextKind.Native)
return $@"{VisitClassDecl(specialization)}{
Helpers.GetSuffixForInternal(specialization)}";
return $"{VisitClassDecl(specialization)}";
var args = string.Join(", ", specialization.Arguments.Select(VisitTemplateArgument));
return $"{VisitClassDecl(specialization)}<{args}>";
}

21
src/Generator/Generators/CodeGenerator.cs

@ -409,25 +409,32 @@ namespace CppSharp.Generators @@ -409,25 +409,32 @@ namespace CppSharp.Generators
public static readonly string CreateInstanceIdentifier = Generator.GeneratedIdentifier("CreateInstance");
public static string GetSuffixForInternal(Declaration context)
public static string GetSuffixForInternal(DeclarationContext @class)
{
var specialization = context as ClassTemplateSpecialization;
ClassTemplateSpecialization specialization = null;
DeclarationContext declContext = @class;
while (declContext != null)
{
specialization = declContext as ClassTemplateSpecialization;
if (specialization != null)
break;
declContext = declContext.Namespace;
}
if (specialization == null ||
specialization.TemplatedDecl.TemplatedClass.Fields.All(
f => !(f.Type.Desugar() is TemplateParameterType)))
!specialization.TemplatedDecl.TemplatedClass.HasDependentValueFieldInLayout())
return string.Empty;
if (specialization.Arguments.All(
a => a.Type.Type != null && a.Type.Type.IsAddress()))
a => a.Type.Type?.IsAddress() == true))
return "_Ptr";
return GetSuffixFor(specialization);
}
public static string GetSuffixFor(ClassTemplateSpecialization specialization)
public static string GetSuffixFor(Declaration decl)
{
var suffixBuilder = new StringBuilder(specialization.USR);
var suffixBuilder = new StringBuilder(decl.USR);
for (int i = 0; i < suffixBuilder.Length; i++)
if (!char.IsLetterOrDigit(suffixBuilder[i]))
suffixBuilder[i] = '_';

Loading…
Cancel
Save