This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of New status.
basic_streambuf
is not an abstract classSection: 31.6.3 [streambuf] Status: New Submitter: Jonathan Wakely Opened: 2015-05-28 Last modified: 2015-08-03
Priority: 3
View all other issues in [streambuf].
View all issues with New status.
Discussion:
31.6.3 [streambuf] p1 says:
The class template
basic_streambuf<charT, traits>
serves as an abstract base class for deriving various stream buffers whose objects each control two character sequences: […]
The term "abstract base class" is not defined in the standard, but "abstract class" is (11.7.4 [class.abstract]).
According to the synopsisbasic_streambuf
has no pure virtual
functions so is not an abstract class and none of libstdc++, libc++, or
dinkumware implement it as an abstract class. I don't believe the wording was
ever intended to require it to be an abstract class, but it could be
read that way.
I suggest the wording be changed to "polymorphic base class" or
something else that can't be seen to imply a normative requirement to
make it an abstract class.
Proposed resolution: