I have two functions: 1. A & DataSource(); 2. void DataConsumer( A * );
What I want to achieve: Using one statement to assemble them into one functor.
I have tried:
1. boost::function< void()> func( boost::bind( DataConsumer, & boost::bind( DataSource ) ) );
certainly it didn't work, compiler says it can not convert 'boost::_bi::bind_t ' to 'A *'
2. boost::function< void()> func( boost::bind( DataConsumer, boost::addressof( boost::bind( DataSource ) ) ));
compiler says cannot convert parameter 1 from 'boost::_bi::bind_t' to 'A &'
Question: how to use return value from the nested boost::bind ? or if you want to use boost::lambda::bind.
guys, I just found the answer, like following:
The theory should be: since we call DataSource later, we need a functor that uses the return value later as well.