| C++ dilinin revizyonları |
|---|
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.
C++20 ile birçok yeni özellik tanıtıldı. Aşağıdaki liste tamamlanmamış olabilir.
[=, this]for ifadesi içerisinde ek bir değişkenin ilklendirilmesitypename ihtiyacı kaldırıldı[[no_unique_address]],[[likely]] ve [[unlikely]]explicit, belirtik değiştiricinin bir bool ifadesine bağlı olmasına izin verirconstexpr: virtual fonksiyonlar, union, try-catch, dynamic_cast ve typeid, std::pointer_traitsconsteval anahtar sözcüğünü kullanan dolaysız fonksiyonlarusingconstinit anahtar sözcüğüstd::make_shared ve std::allocate_sharedstd::atomic<shared_ptr<T>> ve std::atomic<weak_ptr<T>> )std::to_address<chrono>'ya takvim ve saat dilimi eklemeleristd::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<>std::map::contains methoduvolatile kullanımdan kaldırıldı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]]