C++17 मानक C++ भाषा का नवीनतम संस्करण है। C++11 और C++14 C++ के पिछले संस्करण हैं। वर्तमान संस्करण कोर भाषा में कई नए परिवर्धन करता है जबकि कुछ पिछली विशेषताओं को हटा भी दिया गया है। C++17 को फीचर-पूर्ण या फीचर-पूर्ण माना जाता है।
लाइब्रेरी परिवर्तन - यूटिल्स
यह C++17 की सबसे आश्चर्यजनक विशेषताओं में से एक है। यह अन्य लाइब्रेरी की विशेषताओं और पैटर्न को मर्ज करता है। कई सब-लाइब्रेरी को मानकों में एक साथ मिला दिया गया है।
C++17 में यूटिल्स लाइब्रेरी में निम्नलिखित विशेषताएं जोड़ी गई हैं:
- std::variant
- std::search
- std::string_view
- std::optional
- std::any
लाइब्रेरी परिवर्तन - फाइलसिस्टम
पिछले मानक लाइब्रेरी में कुछ प्रमुख विशेषताओं का अभाव था। C++ कमेटी ने लाइब्रेरी को बढ़ावा दिया और कई सिस्टम को मानक में मर्ज कर दिया।
C++17 में फाइलसिस्टम में निम्नलिखित विशेषताएं जोड़ी गई हैं:
- पाथ ऑब्जेक्ट के साथ काम करना
- कंपाइलर/लाइब्रेरी सपोर्ट
- पाथ को ट्रैवर्स करना
लाइब्रेरी परिवर्तन - समानांतर एल्गोरिदम
यह C++11 और C++14 की पिछली विशेषताओं में कुछ नई विशेषताएं जोड़ता है। इसने मानक लाइब्रेरी के लिए ऑटो समानांतरीकरण या ऑटो वेक्टराइजेशन सुविधा को अनलॉक कर दिया।
C++17 में समानांतर एल्गोरिदम में निम्नलिखित विशेषताएं जोड़ी गई हैं:
- एल्गोरिदम अपडेट
- एक्सक्यूशन पॉलिसीज़
- नए एल्गोरिदम
एट्रिब्यूट्स
C++17 ने तीन नए एट्रिब्यूट जोड़े हैं, जैसे [[maybe_unused]], [[fallthrough]] और [[nodiscard]]।
सरलीकरण
पिछले C++ संस्करणों में कोड को सरल बनाने के लिए कई विशेषताएं हैं। C++17 ने कोड के सरलीकरण के लिए निम्नलिखित विशेषताओं में यह सुविधा जोड़ी है:
- if/switch के लिए इनिट स्टेटमेंट
- इनलाइन वेरिएबल्स
- स्ट्रक्चर्ड बाइंडिंग डिक्लेरेशन
सर्चर्स
C++17 ने C++ भाषा के पिछले संस्करणों में पुराने सर्चर्स में सुधार किया है। boyer_moore_horspool_searcher, default_searcher और boyer_moore_searcher C++17 में नए सर्चर्स हैं।