سی‌پلاس‌پلاس ۱۷

از ویکی‌پدیا، دانشنامهٔ آزاد
(تغییرمسیر از C++1z)

سی پلاس‌پلاس ۱۷، در سپتامبر ۲۰۱۷ توسط سازمان بین‌المللی استانداردسازی به رسمیت شناخته شد. این استاندارد ISO/IEC 14882:2017 نام دارد. به این نسخه از سی پلاس پلاس C++1z نیز گفته می‌شود. قابلیت‌های بسیاری از جمله مهمترین آنها نوع لفظی u8، کلاس std::byte، از بین رفتن دستور register و شروط همگردانی-هنگام به این زبان اضافه شدند.[۱][۲][۳]

جدید[ویرایش]

افزوده شدن کلان‌دستور (ماکرو) has_include__ برای بررسی اینکه آیا هدر مورد نظر برای شمول وجود دارد یا خیر.

اولیه سازی در شرط ها:

int main(){
int test=6;
if(int test2=6;test==test2){
return 1;
}
}

افزوده شدن کلاس std::any.

افزوده شدن کلاس std::filesystem که برای فایل سیستم‌ها است.

اشاره‌گرهای هوشمند مشترک (std::shared_ptr) اکنون استرینگ (رشته حرف) های سبک سی را هم می‌توانند مدیریت کنند.

نوع لفظی u8 برای تعیین یک رشته حرف یا استرینگ به عنوان محدوده حروف ۸ بیتی امضا نشده، افزوده شد.

اجازه استفاده از ویژگی‌ها (Attributes) در فضای نام (namespace) و شمارش‌ها (enum).

افزوده شدن ویژگی‌های استاندارد [[fallthrough]]،[[maybe_unused]],[[nodiscard]].

اضافه شدن شرط‌هایی با قابلیت اجرای شرط در حین همگردانی. (constexpr if).

اضافه شدن کلاس std::byte.

اضافه شدن std::string_view.

اضافه شدن هدرهای <execution>،<variant> و <optional>.

اشاره‌گرهای هوشمند خودکار (auto_ptr) حذف شدند.

حذف شدن دستور register.

لامبداهای همگردانی هنگام (constexpr).

اضافه شدن متغیرهای درون خطی.

حذف شدن std::unexpected.[۴][۱][۳]

منابع[ویرایش]

  1. ۱٫۰ ۱٫۱ «C++17 - cppreference.com». en.cppreference.com. دریافت‌شده در ۲۰۲۰-۰۸-۰۳.
  2. "C++‎". ویکی‌پدیا، دانشنامهٔ آزاد. 2020-08-03.
  3. ۳٫۰ ۳٫۱ "C++17". Wikipedia (به انگلیسی). 2020-03-24.
  4. https://www.learncpp.com/cpp-tutorial/b-3-introduction-to-c17