سی پلاس‌پلاس ۲۰ (به انگلیسی: C++20) غیر رسمی از زبان برنامه نویسی سی پلاس‌پلاس است که بر مبنای استاندارد سازمان بین‌المللی استانداردسازی / IEC در ادامه سی پلاس‌پلاس ۱۷ به وجود آمده. این استاندارد در نسخه آزمایشی قرار دارد.[۱]

جدیدویرایش

کلان‌دستور (ماکرو)های جدید.

اضافه شدن عملگر <=> یا عملگرهای سه گانه، این عملگر تمامی مقایسات را محاسبه می‌کند، اگر x=2 و y=3 با عملگر سه گانه در z باشند، اگر z مساوی 0 باشد یعنی این دو مساوی‌اند، اگر 1 باشد یعنی x یا اولین محاسبه بزرگ‌تر است، اگر 2 باشد y یا محاسبه دوم بزرگ‌تر است.

قابلیت تعریف یا اعلام یک متغیر در دامنه حلقههای بر پایه محدوده مانند:

#include <iosteam>
#include <vector>
using namespace std;
int main(){
  vector<unsigned int> test={3,8,9,10};
  for(int i=0;auto& t:test){
    cout<<"at "<<i<<' '<<t<<endl;
    i++;
  }
}

char8_t،u8string: کاراکتر و رشته حروف ۸ بیتی امضا نشده.

افزوده شدن صفت های [[unlikely]],[[likely]] و [[no_unique_address]].

افزوده شدن دو کلیدواژه، consteval، که یک تابع با بازگشت یک مقدار ثابت همگردانی هنگام یا موقع کامپایل می‌سازد و constinit که یک متغیر مقدار ثابت همگردانی هنگام می‌سازد، شبیه به constexpr اما با تفاوت اینکه constexpr لزومی ندارد مقدار ثابت باشد و ممکن است همگردانی هنگام باشد یا اجرا هنگام، اما constinit و consteval حتما باید مقدار ثابت باشد و حتما موقع همگردانی محاسبه می‌شوند.


اولیه‌سازی چندتایی با استفاده از پرانتزها.

coroutineها، قابلیتی هستند که میتواند یک تابع را در حالتی که هست نگه دارد؛ بدون از دست دادن موقعیتش و بعد میتواند دوباره از همان موقعیت ادامه دهد.

قابلیت ماژول‌ها یا کلیدواژه‌های export/import.

conceptها یا مفاهیم که برای محدود کردن جنریک‌ها یا درواقع قالب‌ها هستند مانند کد زیر:

#include <iostream>
#include <concepts>
using namespace std;
template<typename T>
concept mahdode=is_integral_v<T>&&is_arithmetic_v<T>
template<mahdode M>
class GM{
M test(){
return 1;
};
int main(){
GM<int> g();
cout<<g.test()<<endl;
// مشکلی نیست
GM<string> g2();
//خطا، در مفهوم قالب تعریف شد که قالب باید قابل محاسبه و عددی باشد.
}

با محدود کردن قالب‌ها سرعت برنامه و همگردانی بالاتر می‌رود زیرا جزئیات بیشتری مطرح شده است.[۲][۱]

منابعویرایش

  1. ۱٫۰ ۱٫۱ "C++20". Wikipedia. 2020-07-30.
  2. «C++20 - cppreference.com». en.cppreference.com. دریافت‌شده در ۲۰۲۰-۰۸-۰۷.