Perguntas com a marcação «raii»

257
jogando exceções fora de um destruidor

A maioria das pessoas diz que nunca lança uma exceção a um destruidor - isso resulta em um comportamento indefinido. Stroustrup argumenta que "o destruidor de vetor chama explicitamente o destruidor para cada elemento. Isso implica que, se um destruidor de elemento é lançado, a destruição de vetor...

201
Preciso fechar manualmente um ifstream?

Preciso ligar manualmente close() quando uso um std::ifstream? Por exemplo, no código: std::string readContentsOfFile(std::string fileName) { std::ifstream file(fileName.c_str()); if (file.good()) { std::stringstream buffer; buffer << file.rdbuf(); file.close(); return...