On 3/1/14, 6:48 AM, Benjamin Kramer wrote:
Modified: cfe/trunk/lib/Driver/Multilib.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Multilib.cpp?rev=202590&r1=202589&r2=202590&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/Multilib.cpp (original)
+++ cfe/trunk/lib/Driver/Multilib.cpp Sat Mar 1 08:48:57 2014
@@ -338,20 +338,11 @@ MultilibSet::filterCopy(const MultilibSe
return Copy;
}
-namespace {
-// Wrapper for FilterCallback to make operator() nonvirtual so it
-// can be passed by value to std::remove_if
-class FilterWrapper {
- const MultilibSet::FilterCallback &F;
-public:
- FilterWrapper(const MultilibSet::FilterCallback &F) : F(F) {}
- bool operator()(const Multilib &M) const { return F(M); }
-};
-} // end anonymous namespace
-
void MultilibSet::filterInPlace(const MultilibSet::FilterCallback &F,
multilib_list &Ms) {
- Ms.erase(std::remove_if(Ms.begin(), Ms.end(), FilterWrapper(F)), Ms.end());
+ Ms.erase(std::remove_if(Ms.begin(), Ms.end(),
+ [&F](const Multilib &M) { return F(M); }),
IMHO `std::cref(F)` would be even more succinct than the lambda for this case.
(That's what I had originally intended to write here, but couldn't because we
didn't have c++11 turned on at the time).
+ Ms.end());
}
raw_ostream &clang::driver::operator<<(raw_ostream &OS, const MultilibSet
&MS) {
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
--
Jon Roelofs
[email protected]
CodeSourcery / Mentor Embedded
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits