diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-02-08 15:17:11 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-02-08 15:17:11 +0100 |
commit | c1e42df5488c60a0aa59aa71e8da290bbba0c536 (patch) | |
tree | bdc10d3b8c043a31c6f5196092876655938589c3 /configgen | |
parent | 474da0ab05ba58999f4d4840d62902b81f5378a9 (diff) |
Generate move constructor too.
Diffstat (limited to 'configgen')
-rw-r--r-- | configgen/src/main/java/com/yahoo/config/codegen/CppClassBuilder.java | 8 |
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); |