Forward declatation typedef
-
hi,
in einer shared library benutzte ich phtreads.
Damit der Benutzer meiner Library pthreads nicht zum IncludePfad hinzufügen muss und ich auch nicht die include header für pthreads mitliefern möchte, muss ich für alle benutzten pthreads Datentypen eine forward-declaration anlegen.In meiner Klasse benötige ich private pointer auf thread_mutex_t und pthread_t.
in der pthread.h sind die beiden allerdings so definiert:
typedef struct {
void * p; /* Pointer to actual object /
unsigned int x; / Extra information - reuse count etc */
} ptw32_handle_t;
typedef ptw32_handle_t pthread_t;und
typedef struct pthread_mutex_t_ * pthread_mutex_t;Trotz Google bekomme ich das nicht hin. Ich finde nur viel darüber, dass forwards bei typedefs höchst schwierig ist, aber keinen workaround.
habt ihr eine Idee?
Gruß
Martin
-
Normal ginge es so:
struct Foo; // forward struct Work{ Foo* foo; // using the forward; works only with ptrs };
Aber warum packste nicht einfach die pthread-Deklaration in deine Header mit rein?