BOOST WIKI | STLAlgorithmExtensions | RecentChanges | Preferences | Page List | Links List
This algorithm is analogous to the std::bitset::any() function, but applied to a generic range. The algorithm returns true if the predicate it true for any element in the range.
template <typename InputIterator, typename Predicate>
bool any_if(InputIterator first, InputIterator last, Predicate p) {
return std::find_if(first, last, p) != last;
}
I realise this is moot point, but isn't "exists" a better name? This question is related to
STLAlgorithmExtensions/ExistsAndOnlyAlgorithm.
- People/Vladimir Prus
I was thinking about this on my walk into work today :) "exists" is certainly more correct mathematically, though I'm not sure your average user would be as comfortable with "exists" as with "any". --People/JeremySiek
Hard to tell. Probably that average users should step forward and express their preferences. I'm not sure
they will, however. --People/Vladimir Prus
I prefer "exists".
A ++ for exists from me.
I vote for "exists" also. -- Kevin S. Van Horn
A new contender!
I would prefer contains_if, extending the proposed contains algorithm in a similar way to STL remove_if etc. -- Alisdair Meredith
I'd prefer "some", for grammatical reasons. For all x, for some x, ... -- Richard Copley
To me, "exists" sounds more like a search algorithm, whereas we are just testing a condition here. Comparing (given "For all x") "for some x" with "for any x", I prefer to say "for any x". Code might look like (please feel free to add to this list):
if ( all_if(beg,end,p) ) ...
if ( any_if(beg,end,p) ) ...
if ( any_of(beg,end,p) ) ...
if ( any(beg,end,p) ) ...
if ( some_if(beg,end,p) ) ...
if ( exists_if(beg,end,p) ) ...
if ( exists(beg,end,p) ) ...
I don't like "some". For consistency with std, _if is probably better. I think any_if matches best to all_if in my mind.
-- cheers, Zenaan
Disclaimer: This site not officially maintained by Boost Developers