[C++] pthread_create в абстрактном классе
Хотелось бы без лишних зависимостей портабельно использовать pthreads
в С++. К огромному удивлению оказалось, что задача нетривиальна.
Первые трудности уже преодолел:
для вызова pthread_create() не использую ни функцию-член класса, ни
самостоятельную функцию за пределами класса, а только последнюю
(thread_func) с модификатором "extern C", которая вызывает нужную
функцию класса run.
Таким образом декларация класса PThread и thread_func находятся в
одном заголовочном файле.
Но вот из-за этой thread_func и возникла ещё одна проблема. Выходит,
что если более одного класса наследуют PThread, то при линковке
выходит столкновение двух "одинаковых" вариантов thread_func.
И namespace не помогут, ведь thread_func объявлена и определена в
абстрактном классе.
Посоветуете что-нибудь кроме как забыть об абстрактном PThread?