#include #include template class basic_timer : public boost::asio::basic_io_object { public: explicit basic_timer(boost::asio::io_service &io_service) : boost::asio::basic_io_object(io_service) { } void wait(std::size_t seconds) { return this->service.wait(this->implementation, seconds); } template void async_wait(std::size_t seconds, Handler handler) { this->service.async_wait(this->implementation, seconds, handler); } };