É 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.