00001
00002
00003
00004
00006 #ifndef CXXUTILS_ALGORITHMS_H
00007 #define CXXUTILS_ALGORITHMS_H
00008
00032 namespace CxxUtils {
00033
00034 template<typename InputIterator, typename OutputIterator,
00035 typename Predicate>
00036 OutputIterator
00037 copy_if(InputIterator first, InputIterator last,
00038 OutputIterator result, Predicate pred)
00039 {
00040 for (; first != last; ++first)
00041 if (pred(*first)) {
00042 *result = *first;
00043 ++result;
00044 }
00045 return result;
00046 }
00047
00048 }
00049
00050 #endif //> CXXUTILS_ALGORITHMS_H