スレッドによって呼び出される関数があります。この関数には、 queue::my_queue という一意の引数があります。したがって、スレッドによって呼び出されるメソッドで、次のように void ポインターでキャストを実行する必要があります。
void *AddPacket(void *Ptr)
{ queue<int> my_queue = (queue*)Ptr ;
my_queue.push(byte) ;
}
そして主に、私は:
int main()
{ // do business
pthread_create(&thread, NULL, &AddPacket, (void*)queue) ;
}
しかし、どちらの変換も間違っています。
最初の変換でエラーが発生します:
'my_queue' のメンバー 'push' のリクエスト。これは非クラス タイプ 'queue*' です。</p>
そして2番目のもの:
タイプ「queue」からタイプ「void*」への無効なキャスト</p>
どうすれば問題を解決できますか?