私はクラスメソッドに渡そうとしている関数ポインタを持っています。pthread_createはそのパラメータを渡すために呼び出されます。しかし、私はいくつかの誤りを抱えており、私がここからどこに行くと思うか分からない。 C++は関数ポインタを2回渡して問題を引き起こします
main.cpp:57:29: error: invalid conversion from ‘void* (*)()’ to ‘void (*)(void*)’ [-fpermissive]
私はvoid* (*)(void*)
としてそれを渡していますにもかかわらず、理由を説明してください
int IOThreadPool::Task(void* (*FuncPointer)(void*))
{
pthread_t NewThread;
int rc = pthread_create(&NewThread, NULL, FuncPointer, (void *) (intptr_t) IOThreadPool::Threads.size() + 1);
void (*FuncPointer)(void*);
FuncPointer = random_function;
ThreadPool.Task(FuncPointer);
は、私が
void* (*)()
を取得します。私は非常に混乱していて、頭が痛いです!
おかげ
はあなたがあまりにもrandom_functionを提供することができますか?正しい署名がありますか? – Dutow