У меня есть функция, аналогичная приведенной ниже, которая является константой, и необходимо проверить, что поток файлов открыт до продолжения:
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)
Мне кажется немного странным, что такая функция, которая явно является чистым аксессуаром, должна быть неконстантной. Есть ли логика, которая имеет смысл?