File tree Expand file tree Collapse file tree 1 file changed +5
-3
lines changed
Expand file tree Collapse file tree 1 file changed +5
-3
lines changed Original file line number Diff line number Diff line change @@ -589,13 +589,15 @@ struct ModifiedResult
589589
590590 wrappedParams.errorPath .push (size_t { 0 });
591591
592- if constexpr (!std::is_reference_v<typename std::decay_t <decltype (wrappedFuture.get ())>::reference>)
592+ using vector_type = std::decay_t <decltype (wrappedFuture.get ())>;
593+
594+ if constexpr (!std::is_same_v<std::decay_t <typename vector_type::reference>, typename vector_type::value_type>)
593595 {
594596 // Special handling for std::vector<> specializations which don't return a reference to the underlying type,
595597 // i.e. std::vector<bool> on many platforms. Copy the values from the std::vector<> rather than moving them.
596- for (auto entry : wrappedResult)
598+ for (typename vector_type::value_type entry : wrappedResult)
597599 {
598- children.push (ModifiedResult::convert<Other...>(entry, ResolverParams (wrappedParams)));
600+ children.push (ModifiedResult::convert<Other...>(std::move ( entry) , ResolverParams (wrappedParams)));
599601 ++std::get<size_t >(wrappedParams.errorPath .back ());
600602 }
601603 }
You can’t perform that action at this time.
0 commit comments