Я пытаюсь передать указатель на функцию, но я продолжаю получать ошибку компилятора. Обычно я не передаю указатели функций, но это требует этого. Я думаю, что вам нужно только увидеть объявления, чтобы увидеть, что я делаю неправильно.C++ передающие функции указатели в качестве аргументов
в заголовочном файле у меня есть:
pthread_t * createThread(void *(*func)(void *), string arg)
и в реализации это то же самое:
pthread_t * createThread(void *(*func)(void *), string arg)
В вызове этой функции я делаю: CreateThread (& прекращение функции , «бежал снова»)
И декларация о возможности:
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
Адрес, имя, кем вы являетесь? Что такое определение createThread? –
все это находится в том же файле (и как его построить)? – moooeeeep
Это ошибка компоновщика, что означает, что компоновщик не может найти определение функции. Вы использовали пространство имен в своем проекте? Проверьте это, если с этим возникли проблемы. Ошибка орфографии, или, возможно, вы использовали другое пространство имен для объявления и определения? – Nawaz