Я бы сказал «нет», потому что у функтора C ++ есть перегруженный оператор ()
, который является функцией -члена и поэтому требует указателя функции-члена. Это совершенно другой тип данных, чем обычный указатель функции C, поскольку он не может быть вызван без экземпляра класса. Вам нужно будет передать нормальную функцию или статическую функцию-член в библиотеку C. Поскольку перегруженный оператор ()
не может быть статическим, вы не можете этого сделать. Вам нужно будет передать C-библиотеке нормальную, не-членную функцию или статическую функцию-член, из которой вы затем можете вызвать функтор C ++.