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