Digamos que tengo jerarquía como esto (Esto es sólo un programa de prueba Por favor, no apunte todo lo relacionado con las pérdidas de memoria, destructor no es virtual, etc.):¿Cómo pasar dos parámetros al usar std :: mem_fun?
class I
{
public:
virtual void fun(int n, int n1) = 0;
};
class A : public I
{
public:
void fun(int n, int n1)
{
std::cout<<"A::fun():" <<n<<" and n1:" <<n1<<"\n";
}
};
class B : public I
{
public:
void fun(int n, int n1)
{
std::cout<<"B::fun():" <<n<<" and n1:" <<n1<<"\n";
}
};
int main()
{
std::vector<I*> a;
a.push_back(new A);
a.push_back(new B);
//I want to use std::for_each to call function fun with two arguments.
}
¿Cómo método de diversión() que llamo el cual toma dos argumentos usando std :: for_each? Creo que tengo que usar std :: mem_fun probablemente con std :: bind2nd pero no soy capaz de descubrir cómo hacerlo. ¿Alguna pista de cómo lograr esto? No estoy usando boost.
¿No usar boost significa que no tiene tr1? –