関数ポインターを渡そうとしていますが、コンパイラ エラーが発生し続けます。通常は関数ポインターを渡しませんが、この場合はそれが必要です。私が間違っていることを確認するには、宣言を見るだけでよいと思います。
私が持っているヘッダーファイルで:
pthread_t * createThread(void *(*func)(void *), string arg)
実装では同じです:
pthread_t * createThread(void *(*func)(void *), string arg)
私がやっているこの関数の呼び出しで: createThread(&afunction, "run again")
関数の宣言は次のとおりです。
void *afunction(void *ptr) //(no header, same for both declaration and implementation).
しかし、コンパイラはこれを吐き出します:
Undefined symbols for architecture x86_64:
"createThread(void* (*)(void*), std::basic_string<char, std::char_traits<char>, std::allocator<char> >)", referenced from:
spawnSingleThreadTest() in threadTests.o