I am not sure what this issue will affect, but according to
rule of five if you implement any one of following function, you should implement them all:
virtual ~UMyClass() = default;
UMyClass(const UMyClass&) = default;
UMyClass& operator=(const UMyClass&) = default;
UMyClass(UMyClass&&) = default;
UMyClass& operator=(UMyClass&&) = default;
When I trace UE4 source code, I find out that in MyClass.generated.h we have copy-constructor:
private: \
/** Private copy-constructor, should never be used */ \
NO_API UMyClass(const UMyClass& InCopy); \
in ObjectBase.h, we have Copy assignment operator:
#define DECLARE_CLASS( TClass, TSuperClass, TStaticFlags, TStaticCastFlags, TPackage, TRequiredAPI ) \
private: \
TClass & operator=(TClass const &);
But I can not find Move constructor and Move assignment operator be generated, maybe this is a potential bug?