diff --git a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs index e9c41ed6..d2d85cee 100644 --- a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs +++ b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs @@ -497,10 +497,10 @@ namespace CppSharp.Generators.CSharp { foreach (var ctor in @class.Constructors) { - if (@class.IsStatic) + if (@class.IsStatic || ctor.IsMoveConstructor) continue; - if (ctor.IsMoveConstructor) + if (!ctor.IsGenerated && !(Options.GenerateCopyConstructors && ctor.IsCopyConstructor)) continue; if (ctor.IsDefaultConstructor && !@class.HasNonTrivialDefaultConstructor) diff --git a/tests/Basic/Basic.cpp b/tests/Basic/Basic.cpp index 66e15404..2601760a 100644 --- a/tests/Basic/Basic.cpp +++ b/tests/Basic/Basic.cpp @@ -10,6 +10,10 @@ Foo::Foo() SomePointerPointer = &SomePointer; } +Foo::Foo(Private p) +{ +} + const char* Foo::GetANSI() { return "ANSI"; diff --git a/tests/Basic/Basic.h b/tests/Basic/Basic.h index 5f70e28f..a0b7b4ed 100644 --- a/tests/Basic/Basic.h +++ b/tests/Basic/Basic.h @@ -13,9 +13,16 @@ private: class DLL_API Foo { +private: + enum Private + { + Value1, + Value2 + }; public: Foo(); + Foo(Private p); int A; float B; IgnoredType ignoredType;