Articles of raii

Diretrizes gerais para evitar vazamentos de memory em C ++

Quais são algumas dicas gerais para garantir que não vaze memory em programas C ++? Como faço para descobrir quem deve liberar memory que foi alocada dinamicamente?

Preciso fechar manualmente um ifstream?

Preciso chamar manualmente close() quando eu 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 buffer.str(); } throw std::runtime_exception("file not found"); } Preciso chamar file.close() manualmente? Não deveria ifstream fazer uso de RAII para fechar arquivos?

É abusivo usar IDisposable e “using” como um meio para obter “comportamentos com escopo definido” para segurança de exceção?

Algo que eu costumava usar em C ++ era permitir que uma class A manipulasse uma condição de input e saída de estado para outra class B , através do construtor e destruidor A, para ter certeza de que se algo naquele escopo emitisse uma exceção, então B teria uma estado quando o escopo foi […]

O C ++ suporta blocos ‘finally’? (E o que é isso ‘RAII’ eu continuo ouvindo?)

O C ++ suporta blocos ‘ finally ‘? Qual é o idioma RAII ? Qual é a diferença entre a linguagem RAII do C ++ e a instrução ‘using’ do C # ?

Entendendo o significado do termo e do conceito – RAII (Resource Acquisition is Initialization)

Você poderia nos dar uma boa descrição do que é RAII, por que é importante, e se pode ou não ter alguma relevância para outros idiomas? Eu sei um pouco. Eu acredito que significa “Aquisição de Recursos é Inicialização”. No entanto, esse nome não combina com meu (possivelmente incorreto) entendimento do que é RAII: tenho […]

Por que é errado usar std :: auto_ptr com contêineres padrão?

Por que é errado usar std::auto_ptr com contêineres padrão?

lançando exceções de um destruidor

A maioria das pessoas diz que nunca jogue uma exceção fora do destruidor – isso resulta em um comportamento indefinido. Stroustrup afirma que “o destruidor de vetores invoca explicitamente o destruidor para cada elemento. Isso implica que, se um destrutor de elemento lança, a destruição do vetor falha … Não há realmente nenhuma boa maneira […]

RAII e pointers inteligentes em C ++

Na prática, com C ++, o que é RAII , quais são os pointers inteligentes , como eles são implementados em um programa e quais são os benefícios de usar o RAII com pointers inteligentes?

O que se entende por Aquisição de Recurso é Inicialização (RAII)?

O que se entende por Aquisição de Recurso é Inicialização (RAII)?