دوره C++ 20 خالص - خام و بدون فیلتر
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- یادگیری ویژگیهای جدید استاندارد زبان C++20
- مهاجرت کدبیس موجود ++C به C++20
- استفاده از coroutineها برای نوشتن کد concurrent (همزمان)
- استفاده از moduleها به جای headerها برای ماژولار کردن نرمافزار
- استفاده از کتابخانه ranges برای سادهسازی کار با کانتینرها و الگوریتمها
- استفاده از concepts برای اعمال محدودیت روی الگوریتمها و کلاسها
پیشنیازهای دوره
- درک اولیه از C++11
توضیحات دوره
عمیقترین دوره درباره C++20
این دوره فقط بر ویژگیهای جدید استاندارد C++20 تمرکز دارد بدون اینکه وارد مبانی یا جزئیات استانداردهای قبلی ++C یا مبانی برنامهنویسی شیگرا شود. شما باید درک اولیهای از C++11 داشته باشید تا بتوانید این دوره را دنبال کنید.
هدف این دوره توضیح ویژگیهای جدید هسته زبان و کتابخانه است. شما یاد خواهید گرفت که از designated initializers، consteval ،consinit، استفاده unevaluated از constext در عبارات lambda، استفاده از enum و غیره استفاده کنید. همچنین با روش جدیدی آشنا خواهید شد که از طریق آن کد ++C بدون استفاده از header fileها مجدداً استفاده میشود. این امر از طریق moduleها امکانپذیر است که راهی سریعتر و آسانتر برای استفاده مجدد از توابع یا کلاسهای موجود است.
اگر کلاسهایی را برای استفاده با کانتینرها پیادهسازی میکنید، باید بسیاری از اپراتورهای مقایسه را پیادهسازی کنید که خستهکننده و مستعد خطا میشود. C++20 یک اپراتور جدید به نام three-way comparison operator (اپراتور سفینه فضایی) ارائه میدهد که پیادهسازی اپراتورهای مقایسه را ساده میکند. علاوه بر این، اکنون استفاده از الگوریتمها با کانتینرها از طریق ranges آسانتر شده است. نیازی به استفاده از توابع ()begin و ()end برای عملیات روی کانتینر نیست.
Concepts روش جدیدی برای اعمال محدودیت روی آرگومانهای template است. استفاده از آن در مقایسه با SFINAE (enable_if) بسیار سادهتر است. concepts را یاد بگیرید و پیادهسازی کنید تا اطمینان حاصل کنید که توابع شما نوع صحیح آرگومانها را میپذیرند و از خطاهای runtime جلوگیری کنید.
شما در مورد توابع قابل از سرگیری، به نام coroutineها یاد خواهید گرفت. با استفاده از coroutineها، میتوانید کد concurrent (همزمان) را بدون نیاز به همگامسازی (synchronization) یا threadهای متعدد بنویسید. این به شما امکان میدهد کد با کارایی بالا را بدون سربار ایجاد و نابود کردن threadها بنویسید.
این دوره برای چه کسانی مناسب است؟
- توسعهدهندگان ++C که میخواهند C++ 20 را یاد بگیرند.
- توسعهدهندگان ++C که میخواهند کد خود را به C++ 20 مهاجرت دهند.
دوره C++ 20 خالص - خام و بدون فیلتر
-
مقدمه 04:21
-
Designated Initializers - بخش 1 05:07
-
Designated Initializers - بخش 2 06:29
-
Designated Initializers - بخش 3 07:06
-
حلقه For مبتنی بر Range - بخش 1 04:39
-
حلقه For مبتنی بر Range - بخش 2 06:38
-
UTF-8 - بخش 1 02:33
-
UTF-8 - بخش 2 06:14
-
اتصالات ساختاریافته 05:54
-
عبارات ثابت - constexpr 08:27
-
توابع فوری - consteval 04:07
-
مقداردهی اولیه در زمان کامپایل - constinit 06:42
-
bool صریح (explicit) - بخش 1 04:38
-
bool صریح (explicit) - بخش 2 05:57
-
bool صریح (explicit) - بخش 3 05:10
-
آزمون None
-
this ضمنی (implicit) 04:52
-
Lambda در کانتکست ارزیابی نشده 07:51
-
پارامترهای Template غیر Type 05:34
-
پارامترهای Template - بخش 1 07:56
-
پارامترهای Template - بخش 2 03:50
-
Attributeها - بخش 1 06:48
-
Attributeها - بخش 2 07:14
-
enumها 04:10
-
آزمون None
-
فرمتدهی Stream - بخش 1 05:48
-
فرمتدهی Stream - بخش 2 04:21
-
کتابخانه فرمتدهی C++20 02:34
-
استفاده پایه 04:51
-
پیادهسازی Helper برای println 02:01
-
مشخصات فرمت - Type 07:18
-
مشخصات فرمت - Fill ،Alignment و Width 07:29
-
مشخصات فرمت - فرمتدهی اعداد 07:19
-
مشخصات فرمت - Locale 03:51
-
آزمون None
-
محدود کردن آرگومانهای Template 08:24
-
مقدمه Concepts 02:55
-
پیادهسازی Concepts 04:41
-
انواع استفاده از Concepts 03:36
-
Templateهای خلاصه شده 06:41
-
انواع Requirement - بخش 1 05:32
-
انواع Requirement - بخش 2 09:04
-
ترکیب Requirementها 07:49
-
مثالهای بیشتر 09:33
-
آزمون None
-
بررسی اجمالی فرآیند ساخت (Build) در ++C 09:46
-
مقدمهای بر Moduleها 02:50
-
مثال Moduleها 06:05
-
نامگذاری Module 02:53
-
فرآیند ساخت Moduleها 06:03
-
جداسازی Declaration و Definition 02:55
-
Submoduleها 05:28
-
Moduleهای Partition 04:58
-
Header Unitها 09:03
-
مارکر Private در Module 04:20
-
آزمون None
-
اپراتورهای مقایسه - بخش 1 04:44
-
اپراتورهای مقایسه - بخش 2 06:58
-
اپراتور مقایسه سه طرفه - بخش 1 02:38
-
اپراتور مقایسه سه طرفه - بخش 2 03:20
-
اپراتور مقایسه سه طرفه - بخش 3 05:08
-
اپراتور مقایسه سه طرفه - بخش 4 06:41
-
عبارات سنتز شده - بخش 1 04:41
-
عبارات سنتز شده - بخش 2 03:09
-
مقایسهها 07:37
-
اپراتور تساوی - بخش 1 08:20
-
اپراتور تساوی - بخش 2 07:15
-
اپراتور تساوی - بخش 3 06:00
-
دستهبندیهای Ordering 01:52
-
Strong Ordering 06:11
-
Weak Ordering - بخش 1 05:43
-
Weak Ordering - بخش 2 06:35
-
Partial Ordering - بخش 1 02:48
-
Partial Ordering - بخش 2 04:42
-
خلاصه Ordering 02:33
-
سازگاری با نسخه قبلی (Backward Compatibility) 05:51
-
Utilityها - بخش 1 06:04
-
Utilityها - بخش 2 06:24
-
Utilityها - بخش 3 06:25
-
Utilityها - بخش 4 06:49
-
خلاصه 01:36
-
آزمون None
-
الگوریتمها و Iteratorها 08:22
-
مقدمه Ranges 04:04
-
مثال Ranges 02:50
-
Range Concepts - بخش 1 02:41
-
Range Concepts - بخش 2 04:29
-
Range Concepts - بخش 3 05:00
-
Projectionها - بخش 1 04:22
-
Projectionها - بخش 2 07:28
-
Projectionها - بخش 3 05:08
-
انواع بازگشتی الگوریتم - بخش 1 03:20
-
انواع بازگشتی الگوریتم - بخش 2 04:03
-
انواع بازگشتی الگوریتم - بخش 3 05:27
-
Viewها - بخش 1 04:31
-
Viewها - بخش 2 05:54
-
Viewها - بخش 3 04:08
-
Viewها - بخش 4 08:54
-
Viewها - بخش 5 05:06
-
View Composition 08:06
-
Pipeline 05:25
-
Range Factoryها 07:41
-
آزمون None
-
Subroutineها 06:31
-
مقدمه Coroutineها 06:35
-
مثال Coroutineها 09:00
-
آناتومی Coroutine 07:20
-
پیادهسازی Coroutine 08:31
-
جریان کار Coroutine - بخش 1 06:13
-
جریان کار Coroutine - بخش 2 05:18
-
جریان کار Coroutine - بخش 3 04:47
-
بازگرداندن مقادیر (co_return) 07:51
-
Generator (co_yield) 07:41
-
Awaitable 05:03
-
پیادهسازی Awaitable 08:45
-
Awaiter 02:05
-
پیادهسازی Awaiter - بخش 1 06:39
-
پیادهسازی Awaiter - بخش 2 02:46
-
متدهای Awaiter 04:03
-
همزمانی (Concurrency) در Coroutine - بخش 1 04:34
-
همزمانی (Concurrency) در Coroutine - بخش 2 05:32
-
همزمانی (Concurrency) در Coroutine - بخش 3 06:08
-
Exceptionها در Coroutineها 05:06
-
Exceptionهای مرحله مقداردهی اولیه 04:03
-
Exceptionهای مرحله اجرا - بخش 1 04:04
-
Exceptionهای مرحله اجرا - بخش 2 05:54
-
نتیجهگیری 02:45
-
آزمون None
-
std::jthread 05:36
-
لغو Thread 04:13
-
std::latch 06:59
-
std::barrier 05:16
-
std::counting_semaphore و std::binary_semaphore 05:30
-
آزمون None
-
std::osyncstream 05:30
-
std::source_location 06:11
-
std::span 04:34
-
Span Fixed Extent 04:28
-
Span Dynamic Extent 04:09
-
Spanها به عنوان پارامترهای تابع 05:35
-
Subspanها 06:15
-
توابع Helper کانتینر 03:47
-
()std::erase()/std::erase_if 05:51
-
()std::bind_front 05:55
-
std::is_constant_evaluated 06:10
-
()std::ssize 02:59
-
()std::contains 03:00
مشخصات آموزش
دوره C++ 20 خالص - خام و بدون فیلتر
- تاریخ به روز رسانی: 1404/12/10
- سطح دوره:متوسط
- تعداد درس:147
- مدت زمان :12:37:49
- حجم :5.13GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy