Avatar ·

C++17 में कौन सी नई सुविधाएँ आईं? मुख्य बदलावों का अवलोकन और उदाहरण

सभी को नमस्कार! मैं C++ सीख रहा हूँ और अब नए मानकों को समझने की कोशिश कर रहा हूँ। इससे पहले मैं मुख्य रूप से C++11 और C++14 के साथ काम करता था, लेकिन प्रोजेक्ट पर सहकर्मियों ने कहा कि अब C++17 पर स्विच करने का समय है। मैंने दस्तावेज़ खोला, और वहाँ इतनी सारी नई चीज़ें हैं कि सिर घूम जाता है। मैंने structured bindings, if constexpr, std::optional और std::variant के बारे में सुना है। लेकिन ये व्यवहार में कैसे काम करते हैं? उदाहरण के लिए, मैं अक्सर ऐसा कोड लिखता हूँ जहाँ फ़ंक्शन से या तो मान या त्रुटि लौटानी होती है। पहले मैं tuples या output parameters का उपयोग करता था। सुना है कि C++17 में इसके लिए std::optional है। लेकिन इसे सही तरीके से कैसे लागू करें? और 'guaranteed copy elision' क्या है? मैंने सुना है कि यह objects की वापसी को तेज़ करता है, लेकिन मैं तंत्र को नहीं समझता। मुझे यह भी दिलचस्पी है कि tuples और pairs के साथ काम करना कैसे सरल हुआ है। पहले std::pair को पार्स करने के लिए std::tie(a, b) = my_pair लिखना पड़ता था। अब क्या auto [a, b] = my_pair लिखा जा सकता है? क्या यह सच में काम करता है? और सबसे महत्वपूर्ण सवाल: क्या और