in src/cpp-renderer.ts [85:132]
function renderConstructorDefinition(
className: string,
constructor: CPlusPlus.ClassConstructor,
): string[] {
var result: string[] = [];
switch (constructor.default) {
case CPlusPlus.ConstructorDefault.Default:
case CPlusPlus.ConstructorDefault.Delete:
// no need to emit
break;
default:
var currentLine =
className +
'::' +
constructor.name +
'(' +
renderParameters(constructor.params) +
')';
if (constructor.initializers.length > 0) {
result.push(currentLine + ' :');
constructor.initializers.reduce(
(previousValue, currentValue, currentIndex) => {
var line =
' ' +
currentValue.memberName +
'(' +
currentValue.expression +
')';
if (currentIndex < constructor.initializers.length - 1) {
line += ',';
} else {
line += ' {}';
}
previousValue.push(line);
return previousValue;
},
result,
);
} else {
result.push(currentLine + ' {}');
}
}
return result;
}