É permitido gravar em um ofstream quando não é aberto em c ++

Eu tenho um código como este:

# in class definition
std::ofstream m_myFile;

## some where in code
m_myFile.open(filename);

e, em vários lugares, estou escrevendo para arquivar da seguinte maneira:

m_myFile << "some data to file"<<std::endl;

Isso está funcionando bem, agora eu preciso adicionar um sinalizador ao sistema que, quando não definido, esse arquivo não deve ser criado e gravado. Eu verifiquei e posso executar o aplicativo se fizer isso:

if(createFile)
{
      m_myFile.open(filename);
}

e deixe a gravação no arquivo como está e não estou recebendo nenhum erro de tempo de execução no Windows. Minha pergunta é: se não estou abrindo um arquivo e gravando em seu fluxo, qual é o comportamento padrão?

Devo receber um erro de tempo de execução ou o ofstream esquecer os dados e não o erro de tempo de execução?

Estou usando o Visual Studio 2013.

questionAnswers(2)

yourAnswerToTheQuestion