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
var typePrinter = new CLITypePrinter(Driver, typeCtx); var typePrinter = new CLITypePrinter(Driver, typeCtx);
var retType = function.ReturnType.Type.Visit(typePrinter, var retType = function.ReturnType.Type.Visit(typePrinter,
function.ReturnType.Qualifiers).Split('<')[0]; function.ReturnType.Qualifiers);
var typeNamesStr = ""; var typeNamesStr = "";
var paramNamesStr = "";
var paramNames = template.Parameters.Select(param => param.Name).ToList(); var paramNames = template.Parameters.Select(param => param.Name).ToList();
if (paramNames.Any()) if (paramNames.Any())
{
typeNamesStr = "typename " + string.Join(", typename ", paramNames); typeNamesStr = "typename " + string.Join(", typename ", paramNames);
paramNamesStr = string.Join(", ", paramNames);
}
WriteLine("generic<{0}>", typeNamesStr); 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)); GenerateParametersList(function.Parameters));
} }
PopIndent(); PopIndent();

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

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

Loading…
Cancel
Save