Имеем
[td]//a.h
#ifndef _A_h_
#define _A_h_
class A
{
public:
void f();
void print( int & );
};
#endif
[/td]
[td]
// a.cpp
#include "a.h"
#include <vector>
#include <iostream.h>
#include <algorithm>
using namespace std;
void A::print( int &a )
{
cout<<a<<endl;
}
void A::f()
{
vector<int> vi;
int i = 10;
while( i-- ) vi.push_back( i );
for_each( vi.begin(), vi.end(), print );
}
[/td]
ОТ такая ошибка
[td]
/*
Compiling...
A.CPP
...\A.CPP(16) : error C2664: 'for_each' : cannot convert parameter 3 from 'void (int &)' to 'void (__thiscall *)(int &)'
None of the functions with this name in scope match the target type
Error executing cl.exe.
A.OBJ - 1 error(s), 0 warning(s)
*/[/td]
Может подскажет кто как ето лечится