@@ -91,6 +91,10 @@ class ConfigurationAll : public ConfigurationPredicate
91
91
predicate_list; // inlined form
92
92
93
93
public:
94
+ ConfigurationAll (const ConfigurationAll &) = delete ;
95
+
96
+ ConfigurationAll (ConfigurationAll &&) = default ;
97
+
94
98
ConfigurationAll (
95
99
std::vector<std::unique_ptr<ConfigurationPredicate>> predicate_list)
96
100
: predicate_list (std::move (predicate_list))
@@ -103,7 +107,14 @@ class ConfigurationAll : public ConfigurationPredicate
103
107
* than base */
104
108
ConfigurationAll *clone_configuration_predicate_impl () const override
105
109
{
106
- return new ConfigurationAll (*this );
110
+ decltype (predicate_list) predicate_list_clone = {};
111
+ predicate_list_clone.reserve (predicate_list.size ());
112
+
113
+ for (const auto &predicate : predicate_list)
114
+ predicate_list_clone.push_back (
115
+ predicate->clone_configuration_predicate ());
116
+
117
+ return new ConfigurationAll (std::move (predicate_list_clone));
107
118
}
108
119
};
109
120
@@ -114,6 +125,10 @@ class ConfigurationAny : public ConfigurationPredicate
114
125
predicate_list; // inlined form
115
126
116
127
public:
128
+ ConfigurationAny (const ConfigurationAny &) = delete ;
129
+
130
+ ConfigurationAny (ConfigurationAny &&) = default ;
131
+
117
132
ConfigurationAny (
118
133
std::vector<std::unique_ptr<ConfigurationPredicate>> predicate_list)
119
134
: predicate_list (std::move (predicate_list))
@@ -126,7 +141,14 @@ class ConfigurationAny : public ConfigurationPredicate
126
141
* than base */
127
142
ConfigurationAny *clone_configuration_predicate_impl () const override
128
143
{
129
- return new ConfigurationAny (*this );
144
+ decltype (predicate_list) predicate_list_clone = {};
145
+ predicate_list_clone.reserve (predicate_list.size ());
146
+
147
+ for (const auto &predicate : predicate_list)
148
+ predicate_list_clone.push_back (
149
+ predicate->clone_configuration_predicate ());
150
+
151
+ return new ConfigurationAny (std::move (predicate_list_clone));
130
152
}
131
153
};
132
154
0 commit comments