سیپلاسپلاس ۱۷
سی پلاسپلاس ۱۷، در سپتامبر ۲۰۱۷ توسط سازمان بینالمللی استانداردسازی به رسمیت شناخته شد. این استاندارد 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.
منابع
- ↑ «C++17 - cppreference.com». en.cppreference.com. دریافتشده در ۲۰۲۰-۰۸-۰۳.
- ↑ "C++". ویکیپدیا، دانشنامهٔ آزاد. 2020-08-03.
- ↑ "C++17". Wikipedia (به انگلیسی). 2020-03-24.
- ↑ https://www.learncpp.com/cpp-tutorial/b-3-introduction-to-c17