آموزش سی‌پلاس‌پلاس خالص ۲۰ - خام و بدون سانسور - آخرین آپدیت

دانلود Pure C++ 20 - raw & unfiltered

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:

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


سرفصل ها و درس ها

مقدمه‌ای بر C++20 Introduction to C++20

  • مقدمه Introduction

  • پشتیبانی کامپایلر Compiler support

  • کلامی درباره کد منبع A word on source code

  • اسلاید دک Slide deck

تغییرات هسته زبان Core Language Changes

  • کد منبع Source Code

  • مقداردهی اولیه تعیین شده - ۱ Designated Initializers - I

  • مقداردهی اولیه تعیین شده - ۲ Designated Initializers - II

  • مقداردهی اولیه تعیین شده - ۳ Designated Initializers - III

  • حلقه for مبتنی بر محدوده - ۱ Range-based For Loop - I

  • حلقه for مبتنی بر محدوده - ۲ Range-based For Loop - II

  • UTF-8 - ۱ UTF-8 - I

  • UTF-8 - ۲ UTF-8 - II

  • بندهای ساختاریافته Structured Bindings

  • عبارات ثابت - constexpr Constant Expressions - constexpr

  • توابع فوری - consteval Immediate Functions - consteval

  • مقداردهی اولیه زمان کامپایل - constinit Compiled-time Initialization - constinit

  • bool صریح - ۱ explicit bool - I

  • bool صریح - ۲ explicit bool - II

  • bool صریح - ۳ explicit bool - III

  • کوئیز Quiz

تعبیرات لامبدا و قالب‌ها Lambda Expressions & Templates

  • کد منبع Source Code

  • this ضمنی implicit this

  • لامبدا در زمینه ارزیابی نشده Lambda In Unevaluated Context

  • پارامترهای قالب غیر از نوع Non-Type Template Parameters

  • پارامترهای قالب - ۱ Template Parameters - I

  • پارامترهای قالب - ۲ Template Parameters - II

تغییرات بیشتر در هسته زبان More Core Language Changes

  • کد منبع Source Code

  • صفات - ۱ Attributes - I

  • صفات - ۲ Attributes - II

  • enums enums

کوئیز Quiz

  • کوئیز Quiz

کتابخانه قالب‌بندی متن Text Formatting Library

  • کد منبع Source Code

  • قالب‌بندی جریان - ۱ Stream Formatting - I

  • قالب‌بندی جریان - ۲ Stream Formatting - II

  • کتابخانه قالب‌بندی C++20 C++20 Formatting Library

  • استفاده اولیه Basic Usage

  • پیاده‌سازی دستیار println println Helper Implementation

  • مشخصه قالب‌بندی - نوع Format Specification - Type

  • مشخصه قالب‌بندی - پر کردن، تراز و عرض Format Specification - Fill, Alignment & Width

  • مشخصه قالب‌بندی - قالب‌بندی اعداد Format Specification - Number Formatting

  • مشخصه قالب‌بندی - لوکیل Format Specification - Locale

  • کوئیز Quiz

کانسپت‌ها Concepts

  • کد منبع Source Code

  • محدود کردن آرگومان‌های قالب Constraining Template Arguments

  • مقدمه‌ای بر کانسپت‌ها Concepts Introduction

  • پیاده‌سازی کانسپت‌ها Concepts Implementation

  • انواع استفاده از کانسپت‌ها Concepts Usage Types

  • قالب‌های خلاصه‌شده Abbreviated Templates

  • انواع نیازمندی - ۱ Requirement Types - I

  • انواع نیازمندی - ۲ Requirement Types - II

  • ترکیب نیازمندی‌ها Combining Requirements

  • مثال‌های بیشتر More Examples

  • کوئیز Quiz

ماژول‌ها Modules

  • کد منبع Source Code

  • مروری بر فرآیند ساخت C++ C++ Build Process Overview

  • مقدمه‌ای بر ماژول‌ها Introduction to Modules

  • مثالی از ماژول‌ها Modules Example

  • نام‌گذاری ماژول Module Naming

  • فرآیند ساخت ماژول‌ها Modules Build Process

  • جداسازی تعریف و اعلامیه Declaration & Definition Separation

  • زیرماژول‌ها Submodules

  • ماژول‌های پارتیشن Partition Modules

  • واحدهای هدر Header Units

  • نشانگر خصوصی ماژول Module Private Marker

  • کوئیز Quiz

مقایسه سه طرفه Three-way Comparison

  • کد منبع Source Code

  • عملگرهای مقایسه - ۱ Comparison Operators - I

  • عملگرهای مقایسه - ۲ Comparison Operators - II

  • عملگر مقایسه سه طرفه - ۱ Three-way Comparison Operator - I

  • عملگر مقایسه سه طرفه - ۲ Three-way Comparison Operator - II

  • عملگر مقایسه سه طرفه - ۳ Three-way Comparison Operator - III

  • عملگر مقایسه سه طرفه - ۴ Three-way Comparison Operator - IV

  • عبارات سنتز شده - ۱ Synthesized Expressions - I

  • عبارات سنتز شده - ۲ Synthesized Expressions - II

  • مقایسه‌ها Comparisons

  • عملگر برابری - ۱ Equality Operator - I

  • عملگر برابری - ۲ Equality Operator - II

  • عملگر برابری - ۳ Equality Operator - III

  • دسته‌های ترتیب Ordering Categories

  • ترتیب قوی Strong Ordering

  • ترتیب ضعیف - ۱ Weak Ordering - I

  • ترتیب ضعیف - ۲ Weak Ordering - II

  • ترتیب جزئی - ۱ Partial Ordering - I

  • ترتیب جزئی - ۲ Partial Ordering - II

  • خلاصه ترتیب Ordering Summary

  • سازگاری رو به عقب Backward Compatibility

  • ابزارها - ۱ Utilities - I

  • ابزارها - ۲ Utilities - II

  • ابزارها - ۳ Utilities - III

  • ابزارها - ۴ Utilities - IV

  • خلاصه Summary

  • کوئیز Quiz

محدوده‌ها Ranges

  • کد منبع Source Code

  • الگوریتم‌ها و تکرارگرها Algorithms & Iterators

  • مقدمه‌ای بر محدوده‌ها Ranges Introduction

  • مثالی از محدوده‌ها Ranges Example

  • مفاهیم محدوده - ۱ Range Concepts - I

  • مفاهیم محدوده - ۲ Range Concepts - II

  • مفاهیم محدوده - ۳ Range Concepts - III

  • پرژکشن‌ها - ۱ Projections - I

  • پرژکشن‌ها - ۲ Projections - II

  • پرژکشن‌ها - ۳ Projections - III

  • انواع بازگشت الگوریتم - ۱ Algorithm Return Types - I

  • انواع بازگشت الگوریتم - ۲ Algorithm Return Types - II

  • انواع بازگشت الگوریتم - ۳ Algorithm Return Types - III

  • ویوها - ۱ Views - I

  • ویوها - ۲ Views - II

  • ویوها - ۳ Views - III

  • ویوها - ۴ Views - IV

  • ویوها - ۵ Views - V

  • ترکیب ویو View Composition

  • پایپ‌لاین Pipeline

  • فکتوری‌های محدوده Range Factories

  • کوئیز Quiz

کرoutines Coroutines

  • کد منبع Source code

  • زیرروالین‌ها Subroutines

  • مقدمه‌ای بر کرoutines Coroutines Introduction

  • مثالی از کرoutines Coroutines Example

  • آناتومی کرoutines Coroutine Anatomy

  • پیاده‌سازی کرoutines Coroutine Implementation

  • جریان کار کرoutines - ۱ Coroutine Workflow - I

  • جریان کار کرoutines - ۲ Coroutine Workflow - II

  • جریان کار کرoutines - ۳ Coroutine Workflow - III

  • بازگرداندن مقادیر (co_return) Returning Values (co_return)

  • مولد (co_yield) Generator (co_yield)

  • Awaitable Awaitable

  • پیاده‌سازی Awaitable Awaitable implementation

  • Awaiter Awaiter

  • پیاده‌سازی Awaiter - ۱ Awaiter Implementation - I

  • پیاده‌سازی Awaiter - ۲ Awaiter Implementation - II

  • متدهای Awaiter Awaiter Methods

  • همزمانی کرoutines - ۱ Coroutine Concurrency - I

  • همزمانی کرoutines - ۲ Coroutine Concurrency - II

  • همزمانی کرoutines - ۳ Coroutine Concurrency - III

  • استثناها در کرoutines Exceptions in Coroutines

  • استثناها در مرحله مقداردهی اولیه Initialization Stage Exceptions

  • استثناها در مرحله اجرا - ۱ Execution Stage Exceptions - I

  • استثناها در مرحله اجرا - ۲ Execution Stage Exceptions - II

  • نتیجه‌گیری Conclusion

  • کوئیز Quiz

همزمانی Concurrency

  • کد منبع Source Code

  • std::jthread std::jthread

  • لغو رشته Thread Cancellation

  • std::latch std::latch

  • std::barrier std::barrier

  • std::counting_semaphore و std::binary_semaphore std::counting_semaphore & std::binary_semaphore

  • کوئیز Quiz

افزودنی‌های بیشتر به کتابخانه استاندارد More Additions to Standard Library

  • کد منبع Source code

  • std::osyncstream std::osyncstream

  • std::source_location std::source_location

  • std::span std::span

  • محدوده ثابت Span Fixed Extent

  • محدوده پویا Span Dynamic Extent

  • Spanها به عنوان پارامتر تابع Spans As Function Parameters

  • زیرمحدوده‌ها Subspans

  • توابع کمکی کانتینر Container Helper Functions

  • std::erase()/std::erase_if() std::erase()/std::erase_if()

  • std::bind_front() std::bind_front()

  • std::is_constant_evaluated std::is_constant_evaluated

  • std::ssize() std::ssize()

  • std::contains() std::contains()

  • LECTURE BONUS BONUS LECTURE

نمایش نظرات

آموزش سی‌پلاس‌پلاس خالص ۲۰ - خام و بدون سانسور
جزییات دوره
12.5 hours
153
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
298
4.5 از 5
دارد
دارد
دارد
Umar Lone
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Umar Lone Umar Lone

مربی ، توسعه دهنده و بنیانگذار مهندس Poash TechnologiesCivil که خواست خود را در توسعه نرم افزار یافت. هرگز به عنوان مهندس عمران کار نکرده ، در اولین فرصت پرش کرده و از 15 سال پیش تدریس C ++ و Visual C ++ را شروع کردم. در حال حاضر ، متخصصان نرم افزار را در شرکت های مختلف نرم افزاری در فن آوری های مختلف مانند Modern C ++ ، Advanced C ++ ، STL ، Design Patterns ، Android ، Unity ، Linux و ... آموزش می دهد. بسیار علاقه مند به تدریس است و بیش از 20،000 متخصص نرم افزار را در حرفه تدریس آموزش داده است بیش از 17 سال طول می کشد. یک گیمر مشتاق ، در حال حاضر تلاش خود را برای توسعه بازی در Unity & Unreal انجام می دهد. چند برنامه اندرویدی به اعتبار خود دارد ، از جمله یکی در Design Patterns. تنها چیزی که او بیش از C ++ دوست دارد ، C ++ مدرن است.