
Sean Kelly wrote:
Andreas Huber wrote:
Yes, but the user still has to know/remember that (s)he has to call join() in the derived class destructor and start() in the constructor. I think the boost::thread design is much less error-prone here.
I don't think it's too much to expect a user to know how to properly use a class, provided proper use is documented, but this is really a matter of opinion. I mentioned the design as one that I favor, and I'll continue to use it whether it becomes a part of Boost or not :)
Which is just fine for me :). Surely, you and others preferring an inheritance-based thread design have very valid reasons to do so. In a real-world project environment non-technical reasons are often more important than technical ones. I just don't think the same is true for boost libraries. Especially if the library in question is bound to become very popular, it's a bad idea to settle for anything less than the simplest, least error-prone and most obvious interface possible... Regards, Andreas