🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.lenguajes.c++
Article #125

Re: Como pasar un puntero a función miembro como parametro de otra función

#125
From: jrbcast
Date: Tue, 07 Oct 2008 14:47
50 lines
2565 bytes
Gracias, pero me temo que no puedo usar boost :-(, mo me dejan añadir
librerías
a la que ya tenemos. ¿Sabes si esto se puede hacer de otra forma,
digamos std:: o algo?.

Gracias

On 7 oct, 14:44, p...@informatimago.com (Pascal J. Bourguignon) wrote:
> jrbc...@gmail.com writes:
> > Hola,
>
> > Tengo el siguiente problema:
>
> > class A
> > {
> >     double ejemplo(double *p)
> >     {
> >        return do_job(p+1);
> >     }
> > }
>
> > Ahora resulta que otra función de externa a esta clase toma como
> > parámetro un
> > puntero a una función, más concretamente:
>
> > void foo( double(*f)(double* x) )
>
> > Me gustaría pasar el método "ejemplo" como argumento a la función foo.
> > ¿Cómo lo puedo hacer?.
>
> > Gracias de antemano.
>
> Habría:
>
>     std::mem_fun_ptr(&A::ejemplo)
>
> pero eso no te daria una funcion double(double*), porque una funcion
> miembro toma tambien el parametro 'this'.
>
> Tendras que usar boost::bind:
>
>     foo( boost::bind(A::ejemplo,this,_1) )
>
> o:
>
>     foo( boost::bind(A::ejemplo,alguno_objeto_de_clase_A,_1) )
>
> --
> __Pascal Bourguignon__
Technical Details
Message-ID: <714716d7-0930-4d7e-b96c-c467d88f7d55@v30g2000hsa.googlegroups.com>
Path: arc1-ca.pugleaf.net!g2news1.google.com!postnews.google.com!v30g2000hsa.googlegroups.com!not-for-mail
References: <4a22be7f-4b21-495b-91da-271ee842ded1@k7g2000hsd.googlegroups.com> <7cmyhg4ls4.fsf@pbourguignon.anevia.com>

Show Full Headers
Complete Article Headers
X-Google-Thread: f53ec,7827fb6d5a442b8e
X-Google-Attributes: gidf53ec,domainid0,public,usenet
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!postnews.google.com!v30g2000hsa.googlegroups.com!not-for-mail
From: jrbcast@gmail.com
Newsgroups: es.comp.lenguajes.c++
Subject: Re: Como pasar un puntero a función miembro como parametro de otra función
Date: Tue, 7 Oct 2008 07:47:10 -0700 (PDT)
Organization: http://groups.google.com
Lines: 51
Message-ID: <714716d7-0930-4d7e-b96c-c467d88f7d55@v30g2000hsa.googlegroups.com>
References: <4a22be7f-4b21-495b-91da-271ee842ded1@k7g2000hsd.googlegroups.com> 
 <7cmyhg4ls4.fsf@pbourguignon.anevia.com>
NNTP-Posting-Host: 150.244.87.118
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
X-Trace: posting.google.com 1223390831 26617 127.0.0.1 (7 Oct 2008 14:47:11 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Tue, 7 Oct 2008 14:47:11 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: v30g2000hsa.googlegroups.com; posting-host=150.244.87.118; 
 posting-account=h2lfHQoAAACqfsN9yL0nKhXPX_fnJMkm
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; es-ES; 
 rv:1.9.0.3) Gecko/2008092414 Firefox/3.0.3,gzip(gfe),gzip(gfe)