C++23 का नया मानक: भाषा में प्रमुख परिवर्तन और सुधार

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C++23 का नया मानक जारी: क्या बदला और इसका विकास पर क्या प्रभाव पड़ेगा



C++ मानकीकरण के लिए अंतर्राष्ट्रीय समिति (ISO/IEC JTC1/SC22/WG21) ने आधिकारिक तौर पर भाषा के नए संस्करण — C++23 को मंजूरी दे दी है। यह रिलीज़ C++11 या C++20 जितना मौलिक नहीं है, लेकिन इसमें कई लंबे समय से प्रतीक्षित सुधार शामिल हैं जो कोड को अधिक सुरक्षित, अभिव्यंजक और कुशल बनाएंगे। आइए मुख्य नवाचारों पर नज़र डालें जो प्रत्येक C++ डेवलपर को जानना चाहिए।



C++23 में मुख्य परिवर्तन



  • Deducing this (P0847R7) — सबसे प्रतीक्षित नवाचार। अब आप स्पष्ट रूप से उस ऑब्जेक्ट को निर्दिष्ट कर सकते हैं जिस पर विधि कॉल की जाती है, जिससे lvalue/rvalue, कॉन्स्टेंट और नॉन-कॉन्स्टेंट संस्करणों के लिए ओवरलोडिंग सरल हो जाती है, और CRTP टेम्पलेट्स में कोड डुप्लिकेशन समाप्त हो जाता है।
  • std::expected (P0323R12) — अपवादों के बिना त्रुटि प्रबंधन के लिए एक प्रकार, std::optional और अपवादों का विकल्प। यह या तो मान या त्रुटि लौटाने की अनुमति देता है, जो प्रदर्शन के लिए सख्त आवश्यकताओं वाले सिस्टम के लिए महत्वपूर्ण है।
  • मॉड्यूल std (P2465R3) — मानक लाइब्रेरी अब मॉड्यूल के माध्यम से निर्यात की जाती है, जो संकलन को गति देती है और कोड अलगाव में सुधार करती है। उदाहरण के लिए, import std; दर्जनों #include को बदल देता है।
  • कोरूटीन में सुधार — आलसी अनुक्रमों के लिए std::generator प्रकार जोड़ा गया और C++20 से कोरूटीन के प्रदर्शन और एर्गोनॉमिक्स की कई समस्याओं को ठीक किया गया।
  • मल्टीथ्रेडिंग — थ्रेड सिंक्रोनाइज़ेशन के लिए नया तंत्र std::latch और std::barrier, साथ ही बेहतर std::counting_semaphore।


डेवलपर्स के लिए इसका क्या अर्थ है?



C++23 पिछड़ी संगतता को नहीं तोड़ता, लेकिन नई प्रथाओं को पेश करता है। उदाहरण के लिए, deducing this लाइब्रेरी लिखने को सरल बनाता है, और std::expected धीरे-धीरे रिटर्न कोड की बोझिल जाँचों को बदल देगा। कई कंपाइलर (GCC 13+, Clang 16+, MSVC 2022 17.6+) पहले से ही कुछ सुविधाओं का समर्थन करते हैं।



उच्च-लोड सिस्टम पर काम करने वालों के लिए, मॉड्यूल (बिल्ड स्पीड में 20-40% की वृद्धि) और अपवादों के बिना बेहतर त्रुटि प्रबंधन विशेष रूप से महत्वपूर्ण हैं। यदि आप C++20 का उपयोग करते हैं, तो C++23 में माइग्रेशन के लिए कोड को फिर से लिखने की आवश्यकता नहीं होगी — बस नया कंपाइलेशन फ्लैग चालू करें।



पूर्ण समर्थन की उम्मीद कब करें?



C++23 के लिए पूर्ण समर्थन 2024 के अंत तक कंपाइलरों में अपेक्षित है। अभी आप -std=c++2b (GCC/Clang) या /std:c++latest (MSVC) फ्लैग के साथ अलग-अलग फीचर्स का परीक्षण कर सकते हैं। हम std::expected और deducing this से शुरुआत करने की सलाह देते हैं — ये वास्तविक परियोजनाओं में सबसे उपयोगी हैं।



कोड के वर्तमान उदाहरण और C++20 के साथ तुलना आपको कंपाइलर दस्तावेज़ीकरण में मिलेगी। C++23 एक विकासवादी कदम है जो भाषा को सुरक्षित और अधिक सुविधाजनक बनाता है, प्रदर्शन का त्याग किए बिना।

अनुशंसित लाइब्रेरीज़