summaryrefslogtreecommitdiffstats
path: root/configgen
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-02-08 15:17:11 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2022-02-08 15:17:11 +0100
commitc1e42df5488c60a0aa59aa71e8da290bbba0c536 (patch)
treebdc10d3b8c043a31c6f5196092876655938589c3 /configgen
parent474da0ab05ba58999f4d4840d62902b81f5378a9 (diff)
Generate move constructor too.
Diffstat (limited to 'configgen')
-rw-r--r--configgen/src/main/java/com/yahoo/config/codegen/CppClassBuilder.java8
1 files changed, 8 insertions, 0 deletions
diff --git a/configgen/src/main/java/com/yahoo/config/codegen/CppClassBuilder.java b/configgen/src/main/java/com/yahoo/config/codegen/CppClassBuilder.java
index 8cfc38e5076..d3a0a79c737 100644
--- a/configgen/src/main/java/com/yahoo/config/codegen/CppClassBuilder.java
+++ b/configgen/src/main/java/com/yahoo/config/codegen/CppClassBuilder.java
@@ -356,6 +356,12 @@ public class CppClassBuilder implements ClassBuilder {
void writeConfigClassAssignmentOperatorDefinition(Writer w, String parent, String className, NoExceptSpecifier noexcept) throws IOException {
w.write(parent + " & " + parent + "::" + "operator =(const " + className + " & __rhs)" + noexcept + " = default;\n");
}
+ void writeConfigClassMoveConstructorDefinition(Writer w, String parent, String className, NoExceptSpecifier noexcept) throws IOException {
+ w.write(parent + "::" + className + "(" + className + " && __rhs)" + noexcept + " = default;\n");
+ }
+ void writeConfigClassMoveOperatorDefinition(Writer w, String parent, String className, NoExceptSpecifier noexcept) throws IOException {
+ w.write(parent + " & " + parent + "::" + "operator =(" + className + " && __rhs)" + noexcept + " = default;\n");
+ }
void writeClassCopyConstructorDefinition(Writer w, String parent, CNode node) throws IOException {
String typeName = getTypeName(node, false);
@@ -736,6 +742,8 @@ public class CppClassBuilder implements ClassBuilder {
if (root) {
writeConfigClassCopyConstructorDefinition(w, fullClassName, typeName, noexcept);
writeConfigClassAssignmentOperatorDefinition(w, fullClassName, typeName, noexcept);
+ writeConfigClassMoveConstructorDefinition(w, fullClassName, typeName, noexcept);
+ writeConfigClassMoveOperatorDefinition(w, fullClassName, typeName, noexcept);
} else {
writeClassCopyConstructorDefinition(w, fullClassName, node);
writeClassAssignmentOperatorDefinition(w, fullClassName, node);