Avatar ·

Quando e por que realmente usar noexcept em C++?

Olá, colegas! Escrevo em C++ há cerca de um ano, uso ativamente C++11/14. Constantemente vejo no código e nas bibliotecas a palavra-chave `noexcept`, mas não entendo completamente quando realmente preciso aplicá-la.\n\nPor exemplo, estou escrevendo uma classe wrapper simples para trabalhar com arquivos. Aqui está como normalmente defino os métodos:\n\n```cpp\nclass FileWrapper {\npublic:\n FileWrapper(const std::string& filename) : file_(fopen(filename.c_str(), "r")) {\n if (!file_) throw std::runtime_error("Cannot open file");\n }\n \n ~FileWrapper() { \n if (file_) fclose(file_); \n }\n \n bool is_open() const { return file_ != nullptr; }\n \n std::string read_line() {\n // ... pode lançar exceção em caso de erro de leitura\n }\n \n void close() { \n if (file_) { fclose(file_); fi