C++20

C++20, C++17'den sonra C++ programlama dili için ISO/IEC standardının revizyonunun adıdır. Bu standart Şubat 2020'de Prag'daki toplantıda WG21 tarafından teknik olarak sonuçlandırıldı. Bir taslak 4 Eylül 2020 tarihinde onaylandıktan sonra C++20 şu anda son makale çalışmalarından geçiyor. C++20, C++14 veya C++17'den daha fazla yeni büyük özellik ekleyecektir. Aşağıda C++20'ye dahil edilmesi konuşulan veya kabul edilen değişikliklerin listesinin bir kısmı bulunmaktadır. == Yeni özellikler == C++20 ile birçok yeni özelliği tanıtıldı. Aşağıdaki listeler tamamlanmamış olabilir. === Dil === * kısa sözdizimi ile, konseptler * modüller * belirlenmiş ilklendiriciler (C99 özelliğine ve yaygın G ++ uzantısına dayanarak) * lambda yakalama olarak`[=, this]` * lambdalardaki şablon parametre listeleri * "uzay gemisi operatörü" (<=>) kullanarak üç yönlü karşılaştırma * aralık tabanlı bir `for` ifadesi içerisinde ek bir değişkenin ilklendirilmesi * değerlendirilmemiş bağlamlarda lambdalar * varsayılan yapılandırılabilir ve atanabilir durumsuz lambdalar * şablon parametreleri olarak dize değişmezleri * belirli durumlarda`typenamek`ihtiyacı`kaldırıldı` * yeni standart özellikler`no_unique_address,` `likely` ve `unlikely` * koşullu `explicit,` belirtik değiştiricinin bir boole ifadesine bağlı olmasına izin verir * genişletilmiş `constexpr`: sanal fonksiyonlar, birleşim, dene ve yakala, dynamic_cast ve typeid, std :: pointer_traits * yeni `consteval` anahtar sözcüğünü kullanan dolaysız fonksiyonlar * işaretli tam sayılar artık ikinin tümleyeni kullanılarak gösterilmek üzere tanımlanmaktadır (işaretli tam sayı taşması tanımsız davranış olarak kalır) * revize edilmiş bir bellek modeli * yapısal bağlamalarda çeşitli iyileştirmeler (lambda yakalamalarıyla etkileşim, static ve thread_local depolama süresi) * Eş programlar * kapsamlı enumlarda`using` * `constinit` anahtar sözcüğü === Kütüphane === * aralıklar (The One Ranges Proposal) * `diziler için std::make_shared` ve `std::allocate_shared` * atomik akıllı işaretçiler (`std::atomic>` ve `std::atomic>` ) * bir işaretçiyi ham işaretçiye dönüştürmek için `std::to_address` * `'ya`takvim ve saat dilimi eklemeleri * `std::span`, bitişik bir diziye bir görünüm sağlar * ``başlığı * `memcpy()'den daha az ayrıntı ve derleyici dahili öğelerinden daha fazla yararlanma yeteneği` ile nesne gösterimlerinin tür dökümleri için `std::bit_cast<>` * özellik test makroları * çeşitli constexpr kitaplık bitleri * varsayılan ilklendirme ile akıllı işaretçi oluşturma * `std::map::contains` methodu * Bit işlemler, ve log2 işlemleri === Kullanımdan kaldırma === * Altsimge ifadelerinde virgül operatörü kullanımı kullanımdan kaldırıldı * (çoğu) `volatile` kullanımdan kaldırıldı === Yeni (ve değiştirilmiş) anahtar kelimeler === `concept`, `constinit`, `consteval`, `co_await`, `co_return`, `co_yield`, `requires` (plus changed meaning for `export`), and `char8_t`.gibi birçok yeni anahtar kelime (ve yeni "uzay gemisi operatörü" (<=>)) eklendi. Ve `explicit artık` C ++ 20'den itibaren ifade alabilecek. Ek olarak`volatile` anahtar kelimesinin çoğu kullanımı kaldırılmıştır. Anahtar kelimelere ek olarak, yeni `import` ve `module` dahil olmak üzere özel anlamı olan tanımlayıcılar da var. C ++ 20'deki yeni nitelikler: `likely`, `unlikely` ve `no_unique_address` == Ayrıca bakınız == * C ++ * C ++ 98 * C18 (C standart revizyonu) == Kaynaklar == == Dış bağlantılar == * JTC1 / SC22 / WG21ISO / IEC C ++ Standart Çalışma Grubu (diğer adıyla C ++ Standartlar Komitesi) * Aralıklar (aralık-v3 ) github deposu, Eric Niebler Kategori:Programlama dilleri standartları Kategori:C++