C++20 بدون زوائد و بارگذاری C++ قدیمی
دوره جامع آموزش ویژگیهای جدید استاندارد C++20
در این دوره، بهطور تخصصی به ویژگیهای جدید و نوآورانهی استاندارد C++20 میپردازیم، بدون اینکه وقت شما را با مباحث پایهای یا جزئیات استانداردهای قدیمی C++ یا اصول برنامهنویسی شیءگرا تلف کنیم.
آنچه در این دوره میآموزید:
- آشنایی با جدیدترین ویژگیهای زبان C++20
- مهاجرت کدبیسهای C++ موجود به C++20
- استفاده از Coroutines برای نوشتن کدهای همزمان (Concurrency)
- کاربرد Modules به جای Headers برای ماژولار کردن نرمافزار
- بهرهگیری از Ranges Library برای سادهسازی کار با کانتینرها و الگوریتمها
- استفاده از Concepts برای اعمال محدودیت بر روی الگوریتمها و کلاسها
پیشنیازها:
درک اولیه از C++11
ویژگیهای کلیدی دوره:
این دوره عمیقترین آموزش در زمینه C++20 است و بهطور انحصاری بر ویژگیهای استاندارد C++20 تمرکز دارد. شما با قابلیتهایی مانند مقداردهی اولیه مشخص (designated initializers)، `consteval`، `constinit`، استفاده از لامبدا در متنهای ارزیابینشده (unevaluated contexts)، کاربردهای جدید enum و موارد دیگر آشنا خواهید شد.
همچنین، روش نوین بازاستفاده از کد C++ بدون نیاز به فایلهای هدر را از طریق ماژولها (Modules) خواهید آموخت. ماژولها روشی سریعتر و آسانتر برای استفاده مجدد از توابع یا کلاسهای موجود هستند.
اگر کلاسهایی را برای استفاده در کانتینرها پیادهسازی میکنید، معمولاً نیاز به پیادهسازی عملگرهای مقایسه متعددی دارید که کاری خستهکننده و مستعد خطا است. C++20 با معرفی عملگر مقایسه سهطرفه (operator<=>)، پیادهسازی عملگرهای مقایسه را سادهتر میکند. علاوه بر این، با استفاده از Ranges، کار با الگوریتمها و کانتینرها بسیار آسانتر شده است و دیگر نیازی به استفاده از توابع `begin()` و `end()` برای عملیات روی کانتینر نیست.
Concepts روشی جدید برای اعمال محدودیت بر روی آرگومانهای قالب (template arguments) است که در مقایسه با SFINAE (enable_if) استفادهی بسیار سادهتری دارد. شما با Concepts آشنا شده و آنها را برای اطمینان از پذیرش صحیح آرگومانها توسط توابع و جلوگیری از خطاهای زمان اجرا پیادهسازی خواهید کرد.
یاد خواهید گرفت که توابع قابل ازسرگیری (resumable functions) یا همان Coroutines چه هستند و چگونه با استفاده از آنها، کدهای همزمان (concurrent code) را بدون نیاز به همگامسازی (synchronization) یا چندین رشته (threads) بنویسید. این امر به شما امکان میدهد کدهای با عملکرد بالا را بدون سربار ایجاد و تخریب رشتهها بنویسید.
اگر آمادهاید، همین حالا شروع کنیم!
آخرین بهروزرسانیها:
-
بهروزرسانی [12 دسامبر 2024]: اضافه شدن محتوا در مورد ویژگیها و کلاسهای کتابخانه جدید C++20
-
بهروزرسانی [07 دسامبر 2024]: اضافه شدن ویدیوهای پشتیبانی از همزمانی (concurrency)
-
بهروزرسانی [26 نوامبر 2024]: اضافه شدن آزمون برای تمام بخشها
-
بهروزرسانی [09 نوامبر 2024]: اضافه شدن ویدیوهای بیشتر با مثالهایی از views در بخش Ranges
Umar Lone
نمایش نظرات