Browse Source

Generated properties of supported template specialisations.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/838/merge
Dimitar Dobrev 8 years ago
parent
commit
3a3d003eb8
  1. 1
      src/Generator/Passes/GetterSetterToPropertyPass.cs
  2. 11
      src/Generator/Types/Std/Stdlib.cs

1
src/Generator/Passes/GetterSetterToPropertyPass.cs

@ -335,7 +335,6 @@ namespace CppSharp.Passes @@ -335,7 +335,6 @@ namespace CppSharp.Passes
VisitOptions.VisitClassFields = false;
VisitOptions.VisitClassProperties = false;
VisitOptions.VisitClassMethods = false;
VisitOptions.VisitClassTemplateSpecializations = false;
VisitOptions.VisitNamespaceEnums = false;
VisitOptions.VisitNamespaceTemplates = false;
VisitOptions.VisitNamespaceTypedefs = false;

11
src/Generator/Types/Std/Stdlib.cs

@ -94,15 +94,13 @@ namespace CppSharp.Types.Std @@ -94,15 +94,13 @@ namespace CppSharp.Types.Std
{
var type = ctx.ReturnType.Type.Desugar();
ClassTemplateSpecialization basicString = GetBasicString(type);
Declaration c_str = basicString.Methods.FirstOrDefault(m => m.OriginalName == "c_str");
if (!c_str.IsGenerated)
c_str = basicString.Properties.First(p => p.OriginalName == "c_str");
var c_str = basicString.Properties.First(p => p.OriginalName == "c_str");
var typePrinter = new CSharpTypePrinter(ctx.Context);
if (type.IsAddress() || ctx.Declaration is Field)
{
ctx.Return.Write("{0}.{1}({2}).{3}{4}",
ctx.Return.Write("{0}.{1}({2}).{3}",
basicString.Visit(typePrinter), Helpers.CreateInstanceIdentifier,
ctx.ReturnVarName, c_str.Name, c_str is Method ? "()" : string.Empty);
ctx.ReturnVarName, c_str.Name);
}
else
{
@ -111,8 +109,7 @@ namespace CppSharp.Types.Std @@ -111,8 +109,7 @@ namespace CppSharp.Types.Std
varBasicString, basicString.Visit(typePrinter),
Helpers.CreateInstanceIdentifier, ctx.ReturnVarName);
ctx.Before.WriteStartBraceIndent();
ctx.Return.Write("{0}.{1}{2}", varBasicString, c_str.Name,
c_str is Method ? "()" : string.Empty);
ctx.Return.Write($"{varBasicString}.{c_str.Name}");
ctx.HasCodeBlock = true;
}
}

Loading…
Cancel
Save