Convert non-static member function pointer to function pointer
От: Nikita.Trophimov  
Дата: 02.04.13 15:24
Оценка: -1
Приветствую.

Есть функция некоторого API, которая принимает в качестве аргумента указатель на свободную функцию. Ей необходимо передать нестатическую функцию-член.

Т.к. напрямую этого сделать нельзя (как известно, указатель на нестатическую функцию-член и указатель на свободную функцию — это абсолютно разные типы), я решил попробовать создать на основе возвращаемого функцией std::bind значения объект класса std::function, у которого вызвать функцию-член target.

http://liveworkspace.org/code/4fZu2N$0

В подобных случаях target возвращает nullptr. Это обсуждалось, например, в рассылке boost'а:

http://lists.boost.org/Archives/boost/2008/12/145709.php

Существует ли вообще нормальный способ преобразовать указатель на функцию-член в указатель на свободную функцию или нет? Предполагаю, что нет, но мало ли кто-нибудь придумал решение.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.