Boost Users :
Subject: [Boost-users] class initialization problem
From: Christopher Pisz (cpisz_at_[hidden])
Date: 2011-09-30 19:07:23
I have a Server class inherited from a Listener class, with the latter being
bases on the boost::asio example code.
My problem is that the Listener class requires am boost::asio::io_service & in
order to initialize its member variables.
I wanted the Server class to be responsible for starting a thread, owning the
io_service, and running it.
It seems I cannot do that!
class Server : public Listener
Listener(boost::asio::io_service & ioService)
The above throws an unhandled exception in the initialization of the derived
I suppose this is because ioService_ is not constructed yet? Since the C++
rules, if I remember correctly, say the base class gets constructed before the
members of the derived?
So, I tried:
to try and force it, but it still throws an exception.
The only way to get it to not throw an exception is to create the instance to
io-service in main() and then pass it as a reference into the class
constructor. If I do that, then there is no way for any class in my
inheritance hierarchy to own the io_service. As such, I cannot start and stop
Is there any way to get ownership of the io_service in my class hierarchy?
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net