Browse Source

Fix template function generation. Return type should be created in TypePrinter.

pull/16/head
marcos henrich 12 years ago
parent
commit
a45dbc7655
  1. 8
      src/Generator/Generators/CLI/CLIHeadersTemplate.cs
  2. 8
      src/Generator/Generators/CLI/CLISourcesTemplate.cs

8
src/Generator/Generators/CLI/CLIHeadersTemplate.cs

@ -281,19 +281,15 @@ namespace CppSharp.Generators.CLI @@ -281,19 +281,15 @@ namespace CppSharp.Generators.CLI
var typePrinter = new CLITypePrinter(Driver, typeCtx);
var retType = function.ReturnType.Type.Visit(typePrinter,
function.ReturnType.Qualifiers).Split('<')[0];
function.ReturnType.Qualifiers);
var typeNamesStr = "";
var paramNamesStr = "";
var paramNames = template.Parameters.Select(param => param.Name).ToList();
if (paramNames.Any())
{
typeNamesStr = "typename " + string.Join(", typename ", paramNames);
paramNamesStr = string.Join(", ", paramNames);
}
WriteLine("generic<{0}>", typeNamesStr);
WriteLine("{0}<{1}> {2}({3});", retType, paramNamesStr, SafeIdentifier(function.Name),
WriteLine("{0} {1}({2});", retType, SafeIdentifier(function.Name),
GenerateParametersList(function.Parameters));
}
PopIndent();

8
src/Generator/Generators/CLI/CLISourcesTemplate.cs

@ -215,19 +215,15 @@ namespace CppSharp.Generators.CLI @@ -215,19 +215,15 @@ namespace CppSharp.Generators.CLI
var typePrinter = new CLITypePrinter(Driver, typeCtx);
var retType = function.ReturnType.Type.Visit(typePrinter,
function.ReturnType.Qualifiers).Split('<')[0];
function.ReturnType.Qualifiers);
var typeNamesStr = "";
var paramNamesStr = "";
var paramNames = template.Parameters.Select(param => param.Name).ToList();
if (paramNames.Any())
{
typeNamesStr = "typename " + string.Join(", typename ", paramNames);
paramNamesStr = string.Join(", ", paramNames);
}
WriteLine("generic<{0}>", typeNamesStr);
WriteLine("{0}<{1}> {2}::{3}({4});", retType, paramNamesStr,
WriteLine("{0} {1}::{2}({3})", retType,
QualifiedIdentifier(@class), SafeIdentifier(function.Name),
GenerateParametersList(function.Parameters));

Loading…
Cancel
Save