}
}
- void copyTree(const NetmaskTree& rhs)
- {
- TreeNode *node;
-
- node = rhs.d_root.get();
- if (node != nullptr)
- node = node->traverse_l();
- while (node != nullptr) {
- if (node->assigned)
- insert(node->node.first).second = node->node.second;
- node = node->traverse_lnr();
+ void copyTree(const NetmaskTree& rhs) noexcept
+ {
+ try {
+ TreeNode *node = rhs.d_root.get();
+ if (node != nullptr)
+ node = node->traverse_l();
+ while (node != nullptr) {
+ if (node->assigned)
+ insert(node->node.first).second = node->node.second;
+ node = node->traverse_lnr();
+ }
+ }
+ catch (...) {
+ abort();
}
}
NetmaskTree() noexcept: d_root(new TreeNode()), d_left(nullptr), d_size(0) {
}
- NetmaskTree(const NetmaskTree& rhs): d_root(new TreeNode()), d_left(nullptr), d_size(0) {
+ NetmaskTree(const NetmaskTree& rhs) noexcept: d_root(new TreeNode()), d_left(nullptr), d_size(0) {
copyTree(rhs);
}
- NetmaskTree& operator=(const NetmaskTree& rhs) {
+ NetmaskTree& operator=(const NetmaskTree& rhs) noexcept {
clear();
copyTree(rhs);
return *this;