Как объявить внешний указатель на функцию «C»
Итак, у меня есть этот код:
#include "boost_bind.h"
#include
#include
#include
double foo(double num, double (*func)(double)) {
return 65.4;
}
int main(int argc, char** argv) {
std::vector vec;
vec.push_back(5.0);
vec.push_back(6.0);
std::transform(vec.begin(), vec.end(), vec.begin(), boost::bind(foo, _1, log));
}
И получите эту ошибку:
return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
.............................................................^
%CXX-E-INCOMPATIBLEPRM, argument of type "double (* __ptr64 )(double) C" is
incompatible with parameter of type "double (* __ptr64 )(double)"
detected during:
instantiation of ...5 pages of boost
Так что эта ошибка, потому чтожурнал' внешний "C"буду в математике
Мне было интересно, как объявить аргумент моего указателя функции в foo (), чтобы он обрабатывал extern "C" 'д функции.