Re: any_of, all_of, none_of
Am 24.08.2011 03:49, schrieb gast128@hotmail.com:
Hello all,
I was wondering why the c++ committee didn't decide to stick to the
'_if' convention as used in other STL algorithm, like all/all_if,
any / any_if etc.
In principle that would have been possible, but the request of
any/all/none is already so fundamental, that the absence of an explicit
customization point (the predicate) makes a further reduction hard to
argue for.
These new algorithms seems only be defined for use with predicates.
But what if u just want to use these for testing against a value, you
now have to bind an argument to an equal_to structure. Or perhaps this
can be easier done?
void f()
{
std::vector<int> vec(1, 3);
const bool bAny = std::any_of(vec.begin(), vec.end(),
boost::bind(std::equal_to<int>(), _1, 3));
_ASSERT(bAny);
}
Just use a lambda expression instead:
void f()
{
std::vector<int> vec(1, 3);
const bool bAny = std::any_of(vec.begin(), vec.end(),
[](int value) { return value == 3; });
_ASSERT(bAny);
}
HTH & Greetings from Bremen,
Daniel Kr?gler
--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]