Посмотрите этот код, я думаю, это то, что вы хотите сделать:
void my_f(void)
{
cout << "hello";
}
int main(void){
boost::function<void()> f = boost::bind(&my_f);
boost::function<void()>* fp = new boost::function<void()>( f );
typedef void(*fptr_type)();
fp->target<fptr_type>();
(*fp)();
}
Скомпилировано с GCC, и это хорошо работает, я вижу cout.