|
@@ -54,12 +54,13 @@ static const char *EnumDefinitionTemplate = "enum $enum$ {\n";
|
|
|
static const char *EnumFieldTemplate = "$enumvalue$ = $value$,\n";
|
|
|
static const char *ConstructorTemplate = "$classname$(QObject *parent = nullptr) : QObject(parent)\n";
|
|
|
static const char *CopyConstructorTemplate = "$classname$(const $classname$ &other) : QObject() {\n";
|
|
|
-static const char *MoveConstructorTemplate = "$classname$(const $classname$ &&other) : QObject() {\n";
|
|
|
+static const char *MoveConstructorTemplate = "$classname$($classname$ &&other) : QObject() {\n";
|
|
|
static const char *CopyFieldTemplate = "m_$property_name$ = other.m_$property_name$;\n";
|
|
|
-static const char *MoveFieldTemplate = "m_$property_name$ = std::move(other.m_$property_name$);\n";
|
|
|
+static const char *MoveComplexFieldTemplate = "m_$property_name$ = std::move(other.m_$property_name$);\n";
|
|
|
+static const char *MoveFieldTemplate = "m_$property_name$ = std::exchange(other.m_$property_name$, 0);\n";
|
|
|
static const char *AssignmentOperatorTemplate = "$classname$ &operator =(const $classname$ &other) {\n";
|
|
|
static const char *AssignmentOperatorReturnTemplate = "return *this;\n";
|
|
|
-static const char *MoveAssignmentOperatorTemplate = "$classname$ &operator =(const $classname$ &&other) {\n";
|
|
|
+static const char *MoveAssignmentOperatorTemplate = "$classname$ &operator =($classname$ &&other) {\n";
|
|
|
static const char *EqualOperatorTemplate = "bool operator ==(const $type$ &other) const {\n"
|
|
|
" return ";
|
|
|
static const char *EqualOperatorPropertyTemplate = "m_$property_name$ == other.m_$property_name$";
|