@ -36,7 +36,7 @@ namespace CppSharp.AST
if (method.OperatorKind == CXXOperatorKind.Equal)
return true;
if (method.Access == AccessSpecifier.Private && !method.IsOverride)
if (method.Access == AccessSpecifier.Private && !method.IsOverride && !method.IsExplicitlyGenerated)
//Ignore copy constructor if a base class don't has or has a private copy constructor
@ -23,7 +23,7 @@ namespace CppSharp.Passes
case AccessSpecifier.Private:
var method = decl as Method;
var isOverride = method != null && method.IsOverride;
return generateNonPublicDecls && isOverride;
return generateNonPublicDecls && (isOverride || decl.IsExplicitlyGenerated);
}