# C++20
 - YÖNLENDİRME 
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 sonuçlandırıldı. Taslak 4 Eylül 2020 tarihinde onaylandıktan sonra C++20 standardı şu anda son çalışmalardan geçiyor.
C++20, C++17 ve C++14'ten daha fazla sayıda yeni ve büyük özellikler ekledi. C++20'ye dahil ve kabul edilen değişikliklerin listesinin bir kısmı aşağıda listelenmiştir.


## Yeni özellikler.
C++20 ile birçok yeni özellik tanıtıldı. Aşağıdaki liste 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 durumlardatypename ihtiyacı kaldırıldı
  - yeni standart özelliklerno_unique_address,likely ve unlikely
  - koşullu explicit, belirtik değiştiricinin bir bool ifadesine bağlı olmasına izin verir
  - genişletilmiş constexpr: virtual fonksiyonlar, union, try-catch, 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ı enumlardausing
  - 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<shared_ptr<T» ve std::atomic<weak_ptr<T» )
  - bir işaretçiyi ham işaretçiye dönüştürmek için std::to_address
  - <chrono>'ya takvim ve saat dilimi eklemeleri
  - std::span, bitişik bir diziye bir görünüm sağlar
  - <version>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, export ve char8_t.gibi birçok yeni anahtar kelime (ve yeni "uzay gemisi operatörü" (<=>)) eklendi. Ek olarak explicit, C++20'den itibaren ifade alabilecek.
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


## Kaynaklar.
 }}>