Parametr pthread_create - dotaz na C++ckare

Ales Pour A.Pour na sh.cvut.cz
Pondělí Březen 8 12:33:08 CET 1999


> > class MujThreadT
> > {
> >  public void * muj_thread(void *xx)
> > ....
> > }
> >
> > MujThreadT Muj;
> > create_pthread(&Muj->muj_thread)
> > ^^^^^^^^^ a toto ale uz nefunguje, hodi to nekompaktibilitu typu. Pokousel
> > jsem se to ruzne pretypovat, ale asi spatne. Nevite nekdo, jak to vyresit?
> >
>  Ja bych rekl, ze u metod objektu v C++ maji nestaticke metody skryty
> parametr, ktery odkazuje na tridu. Cili metoda muj_thread ma ve
> skutecnosti prototyp (zapsano v C): void* muj_thread( MujThread&, void*)
>  Mozna ze by pomohla deklarace:
> class MujThread {
>  public:
>   static void* muj_thread(void *xx)
> }

Tohle pomuze, ale jak jsem pochopil z ruznych debat, tak to, ze tohle
projde
je 'laskavost' kompilatoru, a udajne jsou takovy, se kteryma tohle nejde
(jako priklad kdosi kdesi kdysi uvadel nejaky cecko od IBM). Takze 100%
:-)
prenositelne je to treba udelat pres C funkci, ktery je ovsem nejak
vhodne predat
informaci o objektu a metode, ktera se ma volat jako 'telo' threadu,
treba
pomoci strukturky...

Ales


Další informace o konferenci Linux