Execute multiple named operations in parallel.
226 {
227 std::vector<std::future<std::optional<Datum<OutputType>>>> futures;
228 futures.reserve(names.size());
229
230 for (const auto& name : names) {
231 futures.push_back(execute_named_async<OpClass, InputType, OutputType>(name, input));
232 }
233
234 std::vector<std::optional<Datum<OutputType>>> results;
235 results.reserve(futures.size());
236
237 for (auto& future : futures) {
238 results.push_back(future.get());
239 }
240
241 return results;
242 }