Listing 1: The extended aux::for_each interface
01 namespace aux {
02
03 template <class Iterator, class Function>
04 inline
05 Function
06 for_each(Iterator first, Iterator last, Function func)
07 {
08 return std::for_each(first, last, func);
09 }
10
11 template <class Iterator, class Return, class Class>
12 inline
13 mem_fun_t<Return, Class>
14 for_each(
15 Iterator first,
16 Iterator last,
17 Return (Class::*func)())
18 {
19 return std::for_each(first, last,
20 mem_fun_t<Return, Class>(func));
21 }
22
23 template <class Iterator, class Return, class Class>
24 inline
25 const_mem_fun_t<Return, Class>
26 for_each(
27 Iterator first,
28 Iterator last,
29 Return (Class::*func)() const)
30 {
31 return std::for_each(first, last,
32 const_mem_fun_t<Return, Class>(func));
33 }
34 } // End of aux namespace.