Тут однажды один участник (по-моему, mike), поместил очень удачную фразу о состоянии программиста, когда последний не может понять, почему программа не выполняет очевидные вещи в правильном коде:
"... ну, думал - всё, - допрограммировался ..."
;о)
Вот что меня сподвигнуло эти слова вспомнить:
// proba.cpp
#include <iostream>
#include <pthread.h>
class Activity_t
{public:
void Start();
static void* ActivityThreadFunc ( void* );
};
//static
void* Activity_t::ActivityThreadFunc ( void* )
{
return NULL;
}
void Activity_t::Start()
{
pthread_create( NULL, NULL, &Activity_t::ActivityThreadFunc, NULL );
}
int main()
{
cout << "===========" << endl;
try { throw 23; }
catch(...) { cout << "rrrrrrrrrrrrrrr" << endl; }
cout << "-------------------" << endl;
return 0;
}
Это – результат "продирания" сквозь код и "отбрасывания лишнего"...
Рекомендую откомпилировать в четырёх вариантах:
комментируя и оставляя вызов pthread_create() в каждом из вариантов сборки:
g++ -fexceptions -o proba proba.cpp
g++ -fexceptions -o proba proba.cpp -static
Тип исключения значения не имеет...
(QNX 6.2.1 gcc 2.95.3)