C++17 में कौन सी नई सुविधाएँ आईं और उन्हें वास्तविक प्रोजेक्ट्स में कैसे उपयोग करें?
सभी को नमस्ते! मैं लगभग एक साल से C++ में लिख रहा हूँ, मुख्यतः C++11/14 का उपयोग करता हूँ। हाल ही में मैंने C++17 सीखना शुरू किया और देखा कि open-source प्रोजेक्ट्स में बहुत सारा कोड ऐसे constructs का उपयोग करता है जिन्हें मैं नहीं समझता।
उदाहरण के लिए, मैं अक्सर ऐसा कोड देखता हूँ:
auto [x, y, z] = getPoint();
या ऐसा:
if (auto it = map.find(key); it != map.end()) { ... }
या फिर यह:
std::variant<int, float, std::string> v = 42;
मेरा प्रश्न: C++17 ने वास्तव में कौन से नए features लाए? मैंने structured bindings, if-init, std::variant, std::optional के बारे में सुना है, लेकिन ये व्यवहार में कैसे काम करते हैं? क्या कुछ और भी है जो जानना चाहिए?
मुझे विशेष रूप से इसमें रुचि है:
1. कौन सी features वास्तव में दैनिक विकास को सरल बनाती हैं?
2. standard library में क्या बदला?
3. C++14 से C++17 में संक्रमण करते समय कोई hidden pitfalls हैं?
मैं कोड उदाहरणों के साथ विस्तृत विवरण के लिए आभारी रहूँगा। मैं समझना चाहता हूँ कि कौन सी features को अपने प्रोजेक्ट्स में शामिल करना चाहिए और किनसे अभी बचना चाहिए।