for_each_position.hppGo to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ADOBE_ALGORITHM_FOR_EACH_POSITION_HPP
00010 #define ADOBE_ALGORITHM_FOR_EACH_POSITION_HPP
00011
00012 #include <adobe/config.hpp>
00013
00014 #include <boost/bind.hpp>
00015 #include <boost/range/begin.hpp>
00016 #include <boost/range/end.hpp>
00017
00018 #include <algorithm>
00019
00020
00021
00022 namespace adobe {
00023
00024
00036
00037 #ifndef ADOBE_NO_DOCUMENTATION
00038 namespace implementation {
00039
00040
00041
00042 template <class InputIterator, class UnaryFunction>
00043 void for_each_position(InputIterator first, InputIterator last, UnaryFunction f)
00044 {
00045 while (first != last)
00046 {
00047 f(first);
00048 ++first;
00049 }
00050 }
00051
00052
00053
00054 }
00055 #endif
00056
00062 template <class InputIterator, class UnaryFunction>
00063 inline void for_each_position(InputIterator first, InputIterator last, UnaryFunction f)
00064 {
00065 adobe::implementation::for_each_position(first, last, boost::bind(f, _1));
00066 }
00067
00073 template <class InputRange, class UnaryFunction>
00074 inline void for_each_position(InputRange& range, UnaryFunction f)
00075 {
00076 adobe::for_each_position(boost::begin(range), boost::end(range), f);
00077 }
00078
00084 template <class InputRange, class UnaryFunction>
00085 inline void for_each_position(const InputRange& range, UnaryFunction f)
00086 {
00087 adobe::for_each_position(boost::begin(range), boost::end(range), f);
00088 }
00089
00090
00091
00092 }
00093
00094
00095
00096 #endif
00097
00098
|