C++ में noexcept का वास्तव में कब और क्यों उपयोग करना चाहिए?
नमस्ते साथियों! मैं लगभग एक वर्ष से C++ में लिख रहा हूँ, C++11/14 का सक्रिय रूप से उपयोग करता हूँ। मैं कोड और लाइब्रेरीज़ में लगातार `noexcept` कीवर्ड देखता हूँ, लेकिन मुझे पूरी तरह से समझ नहीं आता कि इसे वास्तव में कब लागू करना चाहिए।
उदाहरण के लिए, मैं फ़ाइलों के साथ काम करने के लिए एक सरल wrapper class लिख रहा हूँ। मैं आमतौर पर इस प्रकार methods को परिभाषित करता हूँ:
```cpp
class FileWrapper {
public:
FileWrapper(const std::string& filename) : file_(fopen(filename.c_str(), "r")) {
if (!file_) throw std::runtime_error("Cannot open file");
}
~FileWrapper() {
if (file_) fclose(file_);
}
bool is_open() const { return file_ != nullptr; }
std::string read_line() {
// ... पढ़ने में त्रुटि होने पर अपवाद फेंक सकता है
}
void close() {
if (file_) { fclose(file_); fi