For faster navigation, this Iframe is preloading the Wikiwand page for سی‌پلاس‌پلاس ۲۰.

سی‌پلاس‌پلاس ۲۰

سی‌پلاس‌پلاس ۲۰ (به انگلیسی: 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. دریافت‌شده در ۲۰۲۰-۰۸-۰۷.
{{bottomLinkPreText}} {{bottomLinkText}}
سی‌پلاس‌پلاس ۲۰
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?