C++23 - C++23
C++ dil revizyonları |
---|
C++23 , C++20'yi takip etmesi beklenen C++ programlama dili için ISO / IEC 14882 standardının sonraki sürümünün resmi olmayan adıdır . Geçerli taslak N4892'dir.
Şubat 2020'de Prag'daki C++20 son toplantısında , C++23 için genel bir plan kabul edildi: C++23 için planlanan özellikler, eşyordamlar için kitaplık desteği , modüler bir standart kitaplık, yürütücüler ve ağ oluşturmadır.
İlk WG21 toplantısı gerçekleşecek düşünülmüştü 23 C ++ odaklanmış Varna erken Haziran 2020 yılında, ancak nedeniyle iptal edildi COVID-19 pandemik içinde, gibiydi Kasım 2020 toplantısında New York'ta ve Şubat 2021 toplantısında , Kona Hawaii . 2022'den önce herhangi bir yüz yüze görüşme olması pek olası değil.
Yeni özellikler
Yüz yüze WG21 toplantılarının yokluğunda, C++23 taslağına şimdiye kadar birkaç yeni özellik eklendi. Ancak, saman anketleriyle onaylandıkları 9 Kasım 2020 tarihli sanal WG21 toplantısından sonra aşağıdakiler eklendi:
- Değişmez son ekler
std::size_t
ve karşılık gelen işaretli tür - Dizenin belirli bir alt dize veya karakter içerip içermediğini kontrol etmek
contains
içinstd::basic_string
ve için bir üye işlevistd::basic_string_view
- Boost .Stacktrace
<stacktrace>
tabanlı bir yığın izleme kitaplığı ( ) - Bir tür özelliği
std::is_scoped_enum
- C atomlarıyla
<stdatomic.h>
birlikte çalışabilirlik için başlık
22 Şubat 2021'deki sanal WG21 toplantısından sonra, saman anketleriyle onaylandıkları yerlere aşağıdaki özellikler eklendi:
- Giriş aralığı adaptörlerini onarma ve
counted_iterator
. - Gereksiz boş parametre listesi Çıkarma
()
gelen lambda ifadeleri . - Gereksinimleri gevşetin
time_point::clock
. -
std::visit
türetilen sınıflar içinstd::variant
. - Kilitler kilitlenebilirleri kilitler.
- Koşullu olarak ödünç alınan aralıklar.
-
std::to_underlying
.
Haziran 2021'deki Yaz 2021 ISO C++ standartları genel kurulu sanal toplantısından sonra, yeni özellikler ve kusur raporları saman anketleriyle onaylandı:
- İstismar eğer ( ).
if consteval
- Bağlamsal dönüşümleri
bool
. - Yinelenen özelliklere izin verilmesi.
-
std::span
tabanlı dize akışı (<spanstream>
). -
std::out_ptr()
vestd::inout_ptr()
. -
constexpr
içinstd::optional
,std::variant
, vestd::type_info::operator==
. - Yineleyiciler
std::stack
( yığın ) vestd::queue
( kuyruk ) için kurucuları eşleştirir . - Aralık kitaplığında birkaç değişiklik:
- Genelleştirilmiş
starts_with
veends_with
keyfi aralıklar için. - Yeniden tasarlandı
split_view
ve yenilazy_split_view
. - Üzerindeki kısıtlamayı gevşetmek
join_view
. default_initializable
Kavramdan kısıtlamanın kaldırılmasıview
.- için aralık oluşturucu
std::basic_string_view
.
- Genelleştirilmiş
- Yasaklama
std::basic_string
vestd::basic_string_view
inşaatnullptr
. -
std::invoke_r
. - Üzerinde iyileştirmeler
std::format
. std::pair
İletim yapıcısı için varsayılan bağımsız değişkenler ekleniyor.
Kaldırılan özellik
- Çöp toplama desteği.
Referanslar