> Actually, the problem I have is that GCC extended the copying ban to
> std::basic_streambuf<>, even though DR 50 only mentions std::ios_base.
> I know that copying stream bases or stream buffers are probably bad
> ideas, but I didn't feel comfortable leaving copy semantics out of my
> subclass's description, especially since I knew the default copy
> semantics would be wrong.  Should I just take the copying code out and
> hope that no one will try copying?  (Remember that copying can be
> attempted, with unknown results, on compilers without DR 50.)  Should I
> explicitly ban copying in my subclass?

Personally I would say "yes", is there a good reason for copying stream
buffers (I can't think of one)?  Looks like a grey area of the standard to
me, I don't think that basic_streambuf was supposed to be copyable, but you
never know, I'll check on the std-lib reflector.

> Even if I add explicit non-copying, that is only necessary only if
> stream-buffer copying wasn't already banned in std::basic_streambuf.  I
> would still need a macro to know when to apply my own copying ban.
> (Since GCC added the ban on stream-buffer copying on its own, it's not
> covered by DR 50.  So I can't expect every compiler to eventually do
> that change too.)

If you add a private copy constructor then that will always work, no matter
what the base class does.

John.


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to