۱ از ۳۹
فصل ۱ · ۳ دقیقه

سی‌پلاس‌پلاس در عصر استانداردهای جدید

این فصل جایگاه زبان، استاندارد و پیاده‌سازی را روشن می‌کند و نشان می‌دهد چرا نسخهٔ استاندارد با نسخهٔ کامپایلر یک مفهوم نیست. زبان، استاندارد و پیاده‌سازی این بخش موضوع‌های زیر را با تعریف دقیق، مثال…

این فصل جایگاه زبان، استاندارد و پیاده‌سازی را روشن می‌کند و نشان می‌دهد چرا نسخهٔ استاندارد با نسخهٔ کامپایلر یک مفهوم نیست.

زبان، استاندارد و پیاده‌سازی

این بخش موضوع‌های زیر را با تعریف دقیق، مثال مستقل، تحلیل خطاهای رایج و تمرین پوشش می‌دهد:

  • تعریف زبان و قواعد معنایی
  • نقش سند استاندارد
  • کتابخانهٔ استاندارد
  • پیاده‌سازی‌های GCC، Clang و MSVC

از C++20 تا C++26

این بخش موضوع‌های زیر را با تعریف دقیق، مثال مستقل، تحلیل خطاهای رایج و تمرین پوشش می‌دهد:

  • C++20 به‌عنوان خط پایهٔ مدرن
  • تکمیل کتابخانه در C++23
  • قابلیت‌های نسل بعدی در C++26
  • سازگاری و مهاجرت تدریجی

قابلیت‌سنجی

این بخش موضوع‌های زیر را با تعریف دقیق، مثال مستقل، تحلیل خطاهای رایج و تمرین پوشش می‌دهد:

  • Feature-Test Macroها
  • آزمون قابلیت در CMake
  • جلوگیری از وابستگی مستقیم به شمارهٔ نسخهٔ کامپایلر

قابل‌حمل‌بودن

این بخش موضوع‌های زیر را با تعریف دقیق، مثال مستقل، تحلیل خطاهای رایج و تمرین پوشش می‌دهد:

  • رفتار تعریف‌شده
  • رفتار وابسته به پیاده‌سازی
  • افزونه‌های کامپایلر
  • انتخاب سطح قابل‌حمل‌بودن

نمونه: آزمون یک قابلیت استاندارد

شمارهٔ نسخهٔ کامپایلر به‌تنهایی تضمین نمی‌کند که همهٔ قابلیت‌های یک استاندارد در دسترس باشند. در کد، می‌توان قابلیت را با ماکروهای آزمون ویژگی بررسی کرد:

export module moderncpp.feature_check;

export namespace moderncpp {

[[nodiscard]] constexpr auto has_expected() noexcept -> bool {
#if defined(__cpp_lib_expected) && __cpp_lib_expected >= 202202L
    return true;
#else
    return false;
#endif
}

} // namespace moderncpp

جمع‌بندی فصل

در نسخهٔ کامل، این بخش نکته‌های اصلی، تصمیم‌های مهندسی و ارتباط فصل با مباحث بعدی را مرور خواهد کرد.

تمرین‌های فصل

بازخورد جامعه

این محتوا برایتان چقدر مفید بود؟

در حال دریافت بازخوردها…