バインド エラーが発生しました
/usr/local/include/boost/bind/bind.hpp:457: エラー: void 式の使用が無効です
私のプログラムは、次のようにコールバック ハンドラーを使用した非同期アクションに関するものです。
template<typename Handler>
void async_monitor(Handler handler) {
stream_descriptor_.async_read_some(
boost::asio::buffer(read_buffer_),
boost::bind(&dir_monitor_impl::handle_monitor<Handler>, shared_from_this(),
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred,
handler));
}//IF I remove this code, the compilation success
そしてハンドラ宣言:
template<typename Handler>
void handle_monitor(boost::system::error_code &ec,
std::size_t bytes_transferred, Handler handler){
}
最後に、これらの非同期アクションは次のように使用されます。
template <typename Handler>
void start_async_monitor(implementation_type &impl, Handler handler)
{
//this->async_monitor_io_service_.post(monitor_operation<Handler>(impl, this->get_io_service(), handler));
impl->async_monitor(handler);
}
このエラーの説明を手伝っていただけませんか。どうもありがとうございました。