زبان C++ چطور توسعه پیدا میکنه؟
هر تغییری که قراره در C++ انجام بشه باید ابتدا در استاندارد این زبان تصویب و اضافه بشه. استاندارد زبان C++ قواعد و ویژگی های این زبان رو توصیف میکنه و کلا نقش قانونگذاری داره. مثلاً میگه که باید یه ساختمان داده به نام vector با فلان مشخصات وجود داشته باشه اما پیاده سازی مواردی که توصیف شده در استاندارد نمیاد.
پس اگه ما بخواهیم یه کتابخانه به C++ اضافه کنیم باید یک پروپوزال بنویسیم که پیشنهادات ما رو خیلی دقیق توصیف کنه. مثلاً این پروپوزال که اخیرا تحت بررسی کمیته استاندارد سازی هست، موضوعش اضافه کردن یک کتابخانه برای کار با گراف ها در C++ هست
🔴 P1709R5 | Graph Library
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p1709r5.pdf
این پروپوزال توسط 8 نفر پیشنهاد شده و چند سالی هست که تحت بررسی قرار گرفته و الان ویرایش پنجم داره نقد میشه. کمیته برای بررسی هر نوع پروپوزال یک زیر گروه مخصوص داره مثلاً پروپوزال بالا عمدتا توسط زیرگروه SG6 یا گروه مطالعاتی Numeric مورد نقد قرار میگیره. در کل پروپوزال های مربوط به محاسبات عددی میاد زیر دست اینا. کمیته استانداردسازی بسیار سخت گیره و تصویب یک پروپوزال به راحتی چندین سال طول میکشه و به عنوان نویسنده خیلی نرماله که قبل از تصویب پروپوزال بمیریم 😐. در طول این مدت پیشنهاد دهندگان پروپوزال میتونن پیاده سازی های غیر رسمی هم از کتابخانه ای که مطرح کردن، منتشر کنند تا با بازخوردی که از کاربرها و کمیته استاندارد سازی میگیرن کارشون رو بهبود بدن.
نهایتا وقتی تصویب شد کمیته اعلام میکنه که مثلاً از نسخه C++26 که سال 2026 منتشر میشه ، این پروپوزال دیگه رسما جزیی از زبان C++ هست . حالا پیاده سازی وظیفه توسعه دهنده های کامپایلر C++ هست که بهترین ها در نوع خودشون هستن. مثلاً وقتی کامپایلر GCC میگه ما در نسخه بعدی تمام ویژگی های C++26 رو پشتیبانی میکنیم، شامل تمام پروپوزال هایی که برای اون نسخه تصویب شدن هم میشه. البته معمولا هر کامپایلر ممکنه قابلیت هایی اضاف بر استاندارد هم پیاده سازی کنه که در اینصورت در مستندات گفته چه مواردی خارج از استاندارده.
اگه کنجکاوید میتونید لیست اعضای کمیته استاندارد سازی رو اینجا ببینید
https://isocpp.org/wiki/faq/wg21
@hpcnerds
Post #33
436
- 👍 3
- ❤ 1