const である以下のような関数があり、続行する前にファイル ストリームが開いていることを確認する必要があります。
bool MyClass::checkSomeStuff() const
{
// Where outputFile_ is a std::ofstream
if ( ! outputFile_.is_open() )
{
throw std::runtime_error( "Output file not open." );
}
// ... do more stuff
is_open()
ただし、次のように宣言されているため、これを行うことはできないようです。
bool is_open ( );
(つまり、非定数)
私には、このような関数 (明らかに純粋なアクセサー) が非 const であることは少し奇妙に思えます。その背後に理にかなっているロジックはありますか?