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
589
589
590
590
wrappedParams.errorPath .push (size_t { 0 });
591
591
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>)
593
595
{
594
596
// Special handling for std::vector<> specializations which don't return a reference to the underlying type,
595
597
// 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)
597
599
{
598
- children.push (ModifiedResult::convert<Other...>(entry, ResolverParams (wrappedParams)));
600
+ children.push (ModifiedResult::convert<Other...>(std::move ( entry) , ResolverParams (wrappedParams)));
599
601
++std::get<size_t >(wrappedParams.errorPath .back ());
600
602
}
601
603
}
You can’t perform that action at this time.
0 commit comments