Googletest export

Avoid temporary matcher instances.
They are unnecessary and can be relatively more expensive than the rest of the
algorithm.

PiperOrigin-RevId: 277084853
This commit is contained in:
Abseil Team 2019-10-28 12:58:29 -04:00 committed by vslashg
parent 757d39a79b
commit 755f853c6b

View File

@ -3028,12 +3028,14 @@ class UnorderedElementsAreMatcherImpl
element_printouts->clear();
::std::vector<char> did_match;
size_t num_elements = 0;
DummyMatchResultListener dummy;
for (; elem_first != elem_last; ++num_elements, ++elem_first) {
if (listener->IsInterested()) {
element_printouts->push_back(PrintToString(*elem_first));
}
for (size_t irhs = 0; irhs != matchers_.size(); ++irhs) {
did_match.push_back(Matches(matchers_[irhs])(*elem_first));
did_match.push_back(
matchers_[irhs].MatchAndExplain(*elem_first, &dummy));
}
}