diff --git a/src/Generator/Passes/ConstructorToConversionOperatorPass.cs b/src/Generator/Passes/ConstructorToConversionOperatorPass.cs index 6785f3b8..e099771b 100644 --- a/src/Generator/Passes/ConstructorToConversionOperatorPass.cs +++ b/src/Generator/Passes/ConstructorToConversionOperatorPass.cs @@ -12,8 +12,10 @@ namespace CppSharp.Passes { public override bool VisitMethodDecl(Method method) { - if (AlreadyVisited(method) || !method.IsGenerated || !method.IsConstructor || - method.IsCopyConstructor) + if (AlreadyVisited(method) || !method.IsGenerated || !method.IsConstructor + || method.IsCopyConstructor + // conversion operators can only be public + || method.Access != AccessSpecifier.Public) return false; var @params = method.Parameters.Where(p => p.Kind == ParameterKind.Regular).ToList(); diff --git a/tests/Common/Common.h b/tests/Common/Common.h index 20ae87fa..beb7216a 100644 --- a/tests/Common/Common.h +++ b/tests/Common/Common.h @@ -1312,3 +1312,13 @@ public: ~HasVirtualFunctionWithBoolParams(); virtual bool virtualFunctionWithBoolParamAndReturnsBool(bool testBool); }; + +class HasProtectedCtorWithProtectedParam +{ +protected: + enum ProtectedEnum + { + Member + }; + HasProtectedCtorWithProtectedParam(ProtectedEnum protectedParam); +};