Skip to content

Commit 25b25c7

Browse files
committed
fix issue with move semantic
1 parent 00c7989 commit 25b25c7

File tree

6 files changed

+39
-6
lines changed

6 files changed

+39
-6
lines changed

include/behaviortree_cpp/bt_factory.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,8 +204,8 @@ class BehaviorTreeFactory
204204
BehaviorTreeFactory(const BehaviorTreeFactory& other) = delete;
205205
BehaviorTreeFactory& operator=(const BehaviorTreeFactory& other) = delete;
206206

207-
BehaviorTreeFactory(BehaviorTreeFactory&& other) = default;
208-
BehaviorTreeFactory& operator=(BehaviorTreeFactory&& other) = default;
207+
BehaviorTreeFactory(BehaviorTreeFactory&& other) noexcept;
208+
BehaviorTreeFactory& operator=(BehaviorTreeFactory&& other) noexcept;
209209

210210
/// Remove a registered ID.
211211
bool unregisterBuilder(const std::string& ID);

include/behaviortree_cpp/tree_node.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,8 @@ class TreeNode
137137
TreeNode(const TreeNode& other) = delete;
138138
TreeNode& operator=(const TreeNode& other) = delete;
139139

140-
TreeNode(TreeNode&& other) = default;
141-
TreeNode& operator=(TreeNode&& other) = default;
140+
TreeNode(TreeNode&& other) noexcept;
141+
TreeNode& operator=(TreeNode&& other) noexcept;
142142

143143
virtual ~TreeNode();
144144

include/behaviortree_cpp/xml_parsing.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ class XMLParser : public Parser
2323
XMLParser(const XMLParser& other) = delete;
2424
XMLParser& operator=(const XMLParser& other) = delete;
2525

26-
XMLParser(XMLParser&& other) = default;
27-
XMLParser& operator=(XMLParser&& other) = default;
26+
XMLParser(XMLParser&& other) noexcept;
27+
XMLParser& operator=(XMLParser&& other) noexcept;
2828

2929
void loadFromFile(const std::filesystem::path &filename, bool add_includes = true) override;
3030

src/bt_factory.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,17 @@ BehaviorTreeFactory::BehaviorTreeFactory():
102102
_p->scripting_enums = std::make_shared<std::unordered_map<std::string, int>>();
103103
}
104104

105+
BehaviorTreeFactory::BehaviorTreeFactory(BehaviorTreeFactory &&other) noexcept
106+
{
107+
this->_p = std::move(other._p);
108+
}
109+
110+
BehaviorTreeFactory &BehaviorTreeFactory::operator=(BehaviorTreeFactory &&other) noexcept
111+
{
112+
this->_p = std::move(other._p);
113+
return *this;
114+
}
115+
105116
BehaviorTreeFactory::~BehaviorTreeFactory()
106117
{}
107118

src/tree_node.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,17 @@ TreeNode::TreeNode(std::string name, NodeConfig config) :
5656
{
5757
}
5858

59+
TreeNode::TreeNode(TreeNode &&other) noexcept
60+
{
61+
this->_p = std::move(other._p);
62+
}
63+
64+
TreeNode &TreeNode::operator=(TreeNode &&other) noexcept
65+
{
66+
this->_p = std::move(other._p);
67+
return *this;
68+
}
69+
5970
TreeNode::~TreeNode() {}
6071

6172
NodeStatus TreeNode::executeTick()

src/xml_parsing.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,17 @@ struct XMLParser::PImpl
9696
XMLParser::XMLParser(const BehaviorTreeFactory& factory) : _p(new PImpl(factory))
9797
{}
9898

99+
XMLParser::XMLParser(XMLParser &&other) noexcept
100+
{
101+
this->_p = std::move(other._p);
102+
}
103+
104+
XMLParser &XMLParser::operator=(XMLParser &&other) noexcept
105+
{
106+
this->_p = std::move(other._p);
107+
return *this;
108+
}
109+
99110
XMLParser::~XMLParser()
100111
{}
101112

0 commit comments

Comments
 (0)