Boost logo

Boost :

From: Daryle Walker (darylew_at_[hidden])
Date: 2003-12-30 08:54:41

This is for the file "boost/io/null_stream.hpp" in the Sandbox.

The "basic_nullbuf" class template implements an output-only stream-buffer.
It only has overrides for "xsputn" and "overflow". While working on
something else which required me to add an override for "showmanyc", I
wondered if I should add that override to "basic_nullbuf".

The "showmanyc" method returns how many characters are available for
'immediate' reading. It is called by the public non-virtual "in_avail"
method. That method returns the remaining spaces in the read buffer, if
any, and "this->showmanyc()" otherwise. Your override for "showmanyc"
should return a positive number corresponding to the number of input
characters immediately available, -1 if a read will certainly fail, or 0 if
neither one of these cases can be determined.

Since "basic_nullbuf" doesn't override "showmanyc", it uses the default
return value of 0. This output-only class must have a 100% input failure
rate, so should I override that method to return -1 instead? (My test file
uses "std::basic_istream<>::readsome", the only stream method that could
call "showmanyc", so I would have to change that part of my test too.)

Daryle Walker
Mac, Internet, and Video Game Junkie
darylew AT hotmail DOT com

Boost list run by bdawes at, gregod at, cpdaniel at, john at