Browse Source

Fix the C++ printing of function pointers in parameters

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/1261/head
Dimitar Dobrev 6 years ago
parent
commit
f737ad6c00
  1. 7
      src/Generator/Generators/C/CppTypePrinter.cs

7
src/Generator/Generators/C/CppTypePrinter.cs

@ -337,7 +337,12 @@ namespace CppSharp.Generators.C @@ -337,7 +337,12 @@ namespace CppSharp.Generators.C
return printName ? string.Format(":({0}){1}", type, name)
: string.Format(":({0})", type);
return printName ? string.Format("{0} {1}", type, name) : type;
CppSharp.AST.Type desugared = arg.Type.Desugar();
desugared = (desugared.GetFinalPointee() ?? desugared).Desugar();
return printName ?
((!(arg.Type is TypedefType) || ResolveTypedefs) &&
desugared is FunctionType ?
type.Replace("(*)", $"(*{name})") : $"{type} {name}") : type;
}
public override TypePrinterResult VisitDelegate(FunctionType function)

Loading…
Cancel
Save