Should basic_*stream::is_open() be const?

Matt Austern austern@apple.com
Fri Aug 13 02:02:00 GMT 2004


On Aug 12, 2004, at 5:24 PM, Andreas Kohn wrote:

> Hi,
>
> while porting some code written for Microsoft Visual C++, I found that
> the is_open() method of the different streams in <fstream> is not 
> const.
> This required that I had to remove const from a lot of places in the
> code in question.
>
> The basic_filebuf::is_open() is marked as const, and all
> *stream::is_open() methods only reference basic_filebuf::is_open() in
> their is_open() implementation.
> I do not see a particular reason why the is_open() methods couldn't be
> const as well.
>
> I do know that there is a C++ Standard, but I don't have it for
> reference, so I am not perfectly sure if this is a "bug" in libstdc++,
> the Microsoft STL implementation, or perhaps an omission from the
> standard.

The latter.  
http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#365

			--Matt



More information about the Libstdc++ mailing list