İçeriğe atla

C++17

C++17, C++ programlama dili için yayınlanan ISO/IEC 14882 standardının bir versiyonudur. C++17, bir önceki C++ standardı olan C++14'ün yerine geçmiş, sonrasında C++20 ile yerdeğiştirmiştir.

Tarihi

C++ Standard Komitesi yayın döngüsünü 3 senelik periyotlara sabitlemeden önce, C++17'nin yayın tarihinin ne olacağı belli değildi. O dönem, C++11 için C++0x veya C++1x, C++14 için C++1y denilmesi gibi, C++17 için de C++1z denilmiştir. C++17 spesifikasyonu Mart 2017'de Uluslararası Standard Taslağı (İngilizceDraft International Standard (DIS)) aşamasına getirildi.[1][2] Bu taslak oy birliği ile onaylanmış[3] ve tamamlanan standard Aralık 2017'de basılmıştır.[4] C++ Standard Kütüphanesi'nde az sayıda değişiklik yapılmıştır, bunlar arasında <algorithm> başlığındaki bazı algoritmalara doğrudan (explicit) parallellik desteği ve sözdizim geliştirmeleri gösterilebilir.

Yeni özellikler

C++17 ile pek çok yeni özellik tanıtılmıştır. Tam olmayan bir liste aşağıda görülebilir.

Dil

  • static_assert'teki text mesajı parametresi geçilmesinin isteğe bağlı hale getirilmesi[5]
  • Bir template'e geçilen template parametresinde (template template parameter) kullanılmak üzere class'a alternatif olarak typename anahtar sözcüğünün kullanımına izin verilmesi [6]
  • Süslü parantez kullanılarak yapılan auto tür çıkarımına dair yeni kurallar [7][8]
  • İç içe namespace tanımları için namespace X { namespace Y { } } yerine namespace X::Y { } kullanılabilmesi [8][9]
  • Namespace'lerde ve enum türlerinde niteleyici (attribute) kullanımına izin verilmesi[10][11]
  • Yeni standard niteleyiciler: [[fallthrough]], [[maybe_unused]], [[nodiscard]][12]
  • UTF-8 (u8) character literals[10][13]
  • Heksadesimal floating-point desteği[14][15]
  • auto'nun template parametrelerinde tür (type) veya nesne (non-type) olarak kullanılabilmesi[16]
  • Tür olmayan her template argümanının derleme zamanında çalıştırılabilmesi [10][17]
  • Değişken sayılarda parametre alabilen (variadic) template'ler için katlama (fold) ifadeleri desteği[10][18]
  • Derleme zamanı koşul yapısı olan if constexpr(expression)[19]
  • Structured binding auto [a, b] = getTwoReturnValues();, for(auto [k, v] : assocContainer){..};[20]
  • if ve switch ifadelerinde tanımlama yapmaya izin verilmesi[21]
  • T türünde bir ifadeden (expression), T türünün nesnelerinin kopyalamayla tanımlama (copy-initialization) ve doğrudan tanımlama (direct-initialization) yoluyla yapılan tanımlama, arı-sağ değer (pure right value, prvalue) türünde bir ifadeden yapıldığında, kopyalama veya taşıma yapıcı üye fonksiyonların (copy constructor, move constructor) çağrılmamasıyla sonuçlanır. Böylece verinin kopyalanmasından kaçınılır (copy ellision).
  • Hizalanmış (alignment) veriler için dinamik bellek tahsisi[22]
  • Class template argument deduction (CTAD), sınıf template'lerde parametre türlerinin argümanlardan çıkarımsanması. Kısaca, bir sınıf template'in nesnesini oluştururken parametre türlerini düşürmeye izin verir: std::pair<double, bool>(5.0, false) yerine std::pair(5.0, false) kullanılabilir ve böylece std::make_pair(5.0, false) gibi bir yardımcı template fonksiyon çağrısına da gerek kalmaz.[23][24]
  • Tek tanım kuralını (one definition rule) ihlal etmeden başlık dosyalarında değişken tanımlamaya olanak tanıyan inline değişkenler. Inline değişkenler, inline fonksiyonlarla aynı kurallara sahiptir.
  • __has_include önişlemci direktifini kullanarak bir başlık dosyasının ulaşılabilir olup olmadığına karar verilebilmesi[25]
  • __cplusplus'ın değerinin 201703L olarak değiştirilmesi[26]
  • Harici durum spesifikasyonunun fonksiyon türünün bir parçası haline getirilmesi[27]
  • Lambda ifadelerinde "*this"'in değer olarak kapılmasına (capture) izin verilmesi[28]

Kütüphane

  • Aşağıdaki listenin de dahil olduğu, Library Fundamentals TS I'in büyük çoğunluğu:[29][30]
    • String ve karakter dizileri üzerinde salt okunur (read-only), sahip olmayan (non-owning) görüş türü olan std::string_view[31]
    • Bir nesnenin varlığını tercihe bağlı hale getiren std::optional
    • Herhangi bir türü tutabilen std::any
  • Sıradışı durum yönetiminde std::uncaught_exception fonksiyonuyla yerdeğiştirmek üzere std::uncaught_exceptions [10][32]
  • std::map ve std::unordered_map tutucuları için yeni eleman ekleme fonksiyonları: try_emplace, insert_or_assign [33][34]
  • "contiguous iterator" tanımı [34][35]
  • boost::filesystem kütüphanesi baz alınarak tasarlanmış bir dosya sistemi kütüphanesi olan std::filesystem[36]
  • Standard algoritmalar için paralellik desteği [37]
  • Elliptik integral ve Bessel fonksiyonlarını da içeren özel matematik fonksiyonları[38]
  • Bir etiketli union (tagged union) olan ve tanımlandığı çeşitli türlerden yalnızca birini tutabilen std::variant[39]
  • Bir byte'ı modellemek için char veya unsigned char türünün yerine kullanılabilecek olan std::byte[40]
  • std::conjunction, std::disjunction ve std::negation metafonksiyonları[41]
  • Çokbiçimli bellek kaynağı sunan <memory_resource> başlığı [42]

Kaldırılan özellikler

C++'ın bu revizyonunda yalnızca yeni özellikler eklenmemiş, aynı zamanda bazı kaldırılanlar da olmuştur.

  • Trigraph'lar (??!) kaldırıldı.[43][44]
  • std::auto_ptr, std::random_shuffle ve eski fonksiyon adaptörleri gibi deprecate edilmiş tür ve fonksiyonlar standard kütüphaneden kaldırıldı.[8][45] Bunların yerini C++11'nin geliştirimiş özellikleri; std::unique_ptr, std::shuffle, std::bind ve lambda gibi yapılar aldı.
  • Önceden deprecate edilmiş nesne barındırma belirteci olan register anahtar sözcüğü kaldırıldı.[46] Bu anahtar sözcük hala ayrımıştır ancak artık kullanılmamaktadır.

Derleyici desteği

  • GCC versiyon 8'den itibaren C++17 dil özelliklerininin tamamını desteklemektir.[47]
  • Clang 5 ve sonraki versiyonlarının hepsi C++17 dil özelliklerininin tamamını desteklemektir.[48]
  • Visual Studio 2017 15.8 (MSVC 19.15) sonrası C++17 dil özelliklerininin tamamını desteklemektir.[49][50]

Kaynakça

  1. ^ "N4661 Editors' Report -- Programming Languages -- C++". 21 Mart 2017. 4 Şubat 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Mart 2017. 
  2. ^ "ISO/IEC DIS 14882: Programming Languages — C++" (PDF). 25 Mart 2017 tarihinde kaynağından (PDF) arşivlendi. 
  3. ^ Herb Sutter [en] (6 Eylül 2017). "C++17 is formally approved". 29 Ocak 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Eylül 2017. 
  4. ^ "ISO/IEC 14882:2017". 29 Ocak 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Aralık 2017. 
  5. ^ "N3928: Extending static_assert, v2 (Walter E. Brown)" (PDF). 11 Ağustos 2015 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 3 Nisan 2015. 
  6. ^ "N4051: Allow typename in a template template parameter (Richard Smith)". 11 Ağustos 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Nisan 2015. 
  7. ^ "N3922: New Rules for auto deduction from braced-init-list (James Dennett)". 10 Ağustos 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Kasım 2014. 
  8. ^ a b c "Updates to my trip report". 19 Mart 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Kasım 2014. 
  9. ^ "N4230: Nested namespace definition (Robert Kawulak, Andrew Tomazos)". 3 Ağustos 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Kasım 2014. 
  10. ^ a b c d e "New core language papers adopted for C++17". 27 Nisan 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Kasım 2014. 
  11. ^ "N4266: Attributes for namespaces and enumerators (Richard Smith)". 6 Mart 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Kasım 2014. 
  12. ^ "N4640: Working Draft, Standard for Programming Language C++" (PDF). ss. 193-195. 12 Mart 2017 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 9 Mart 2017. 
  13. ^ "N4267: Adding u8 character literals (Richard Smith)". 28 Ekim 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Kasım 2014. 
  14. ^ Thomas Köppe. "Hexadecimal floating literals for C++". 21 Eylül 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 16 Temmuz 2017. 
  15. ^ "N4659: Working Draft, Standard for Programming Language C++" (PDF). §5.13.4. 7 Aralık 2017 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 24 Mart 2017. 
  16. ^ James Touton; Mike Spertus (23 Haziran 2016). "Declaring non-type template parameters with auto". 16 Eylül 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Kasım 2020. 
  17. ^ "N4268: Allow constant evaluation for all non-type template arguments (Richard Smith)". 12 Mart 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Kasım 2014. 
  18. ^ "N4295: Folding expressions (Andrew Sutton, Richard Smith)". 4 Nisan 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Kasım 2014. 
  19. ^ "N4659: Working Draft, Standard for Programming Language C++" (PDF). §9.4.1. 7 Aralık 2017 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 24 Mart 2017. 
  20. ^ "N4659: Working Draft, Standard for Programming Language C++" (PDF). §11.5. 7 Aralık 2017 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 24 Mart 2017. 
  21. ^ "Selection statements with initializer". 6 Ekim 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Ekim 2018. 
  22. ^ "Dynamic memory allocation for over-aligned data". 8 Eylül 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 13 Mart 2017. 
  23. ^ "Class template argument deduction". 31 Ocak 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 30 Ocak 2019. 
  24. ^ "CppCon 2018: Timur Doumler "Class template argument deduction in C++17"". YouTube. 21 Ağustos 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 30 Ocak 2019. 
  25. ^ "N4640: Working Draft, Standard for Programming Language C++" (PDF). ss. 431-433. 12 Mart 2017 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 9 Mart 2017. 
  26. ^ "N4659: Working Draft, Standard for Programming Language C++" (PDF). §19.8. 7 Aralık 2017 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 24 Mart 2017. 
  27. ^ "P0012R1: Make exception specifications be part of the type system, version 5". 12 Eylül 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Aralık 2018. 
  28. ^ "P0018R3: Lambda Capture of *this by Value as [=,*this], version 3". 22 Ağustos 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Haziran 2021. 
  29. ^ "Adopt Library Fundamentals V1 TS Components for C++17 (R1)". 5 Nisan 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 23 Mart 2016. 
  30. ^ "Current Status". 8 Eylül 2020 tarihinde kaynağından arşivlendi. 
  31. ^ "std::basic_string_view - cppreference.com". en.cppreference.com. 17 Haziran 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 23 Haziran 2016. 
  32. ^ "N4259: Wording for std::uncaught_exceptions (Herb Sutter)" (PDF). 29 Kasım 2014 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 15 Kasım 2014. 
  33. ^ "N4279: Improved insertion interface for unique-key maps (Thomas Köppe)". 27 Nisan 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Kasım 2014. 
  34. ^ a b "New standard library papers adopted for C++17". 29 Kasım 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Kasım 2014. 
  35. ^ "N4284: Contiguous Iterators (Jens Maurer)". 29 Kasım 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Kasım 2014. 
  36. ^ "Filesystem Library Proposal (Beman Dawes)". 20 Temmuz 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Aralık 2015. 
  37. ^ "The Parallelism TS Should be Standardized". 5 Nisan 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 23 Mart 2016. 
  38. ^ "Mathematical Special Functions for C++17, v5" (PDF). 5 Nisan 2016 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 23 Mart 2016. 
  39. ^ "N4659: Working Draft, Standard for Programming Language C++" (PDF). §23.7. 7 Aralık 2017 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 24 Mart 2017. 
  40. ^ "A byte type definition" (PDF). 25 Mart 2017 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 25 Mart 2017. 
  41. ^ "N4659: Working Draft, Standard for Programming Language C++" (PDF). §23.15.8. 7 Aralık 2017 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 24 Mart 2017. 
  42. ^ "PMR (Polymorphic Memory Resources) fully described -- Nico Josuttis". 28 Ağustos 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 16 Kasım 2020. 
  43. ^ "N3981: Removing trigraphs??! (Richard Smith)". 6 Mayıs 2014. 9 Temmuz 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Nisan 2015. 
  44. ^ IBM comment on preparing for a Trigraph-adverse future in C++17 11 Eylül 2018 tarihinde Wayback Machine sitesinde arşivlendi., IBM paper N4210, 2014-10-10. Authors: Michael Wong, Hubert Tong, Rajan Bhakta, Derek Inglis
  45. ^ "N4190: Removing auto_ptr, random_shuffle(), And Old <functional> Stuff (Stephan T. Lavavej)". 20 Ekim 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Kasım 2014. 
  46. ^ "C++ Keywords: register". 3 Eylül 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Eylül 2018. 
  47. ^ "C++ Standards Support in GCC - GNU Project - Free Software Foundation (FSF)". gcc.gnu.org. 4 Nisan 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Nisan 2018. 
  48. ^ "Clang - C++17, C++14, C++11 and C++98 Status". clang.llvm.org. 4 Temmuz 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Haziran 2018. 
  49. ^ corob-msft. "Visual C++ Language Conformance". docs.microsoft.com. 19 Haziran 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 19 Haziran 2018. 
  50. ^ "Announcing: MSVC Conforms to the C++ Standard". 7 Mayıs 2018. 26 Ağustos 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Mayıs 2018. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Bjarne Stroustrup</span>

Bjarne Stroustrup C++ programlama dilini yaratması ve geliştirmesiyle bilinen Danimarkalı bir bilgisayar bilimcisidir. Columbia Üniversitesi'nde misafir öğretim üyesi ve Morgan Stanley'de Yönetici Direktör olarak çalışmaktadır.

<span class="mw-page-title-main">C♯</span> programlama dili

C#; Microsoft tarafından .NET Teknolojisi için geliştirilen modern bir programlama dilidir. Sözdizimi C-like bir deneyim sunar.

<span class="mw-page-title-main">C++</span> bir programlama dili

C++, Bjarne Stroustrup tarafından 1979 yılında Bell Laboratuvarları'nda geliştirilmeye başlanmış, C'yi kapsayan ve çok paradigmalı, yaygın olarak kullanılan, genel amaçlı bir programlama dilidir.

Programlama dillerinde işaretçi, bellek adresi tutmak için tasarlanmış bir türdür.

<span class="mw-page-title-main">Ada (programlama dili)</span> programlama dili

Ada, yapısal, statik tipli, zorunlu, geniş spektrumlu ve nesne yönelimli bir üst düzey bilgisayar programlama dilidir. Pascal ve diğer dillerin genişletilmiş halidir. Gömülü design-by-contract (DbC), güçlü yazımı, açık eşzamanlı, senkronize mesaj geçişi, korunmuş objeli ve belirsiz bir dildir. Ada kod güvenliğini ve sürdürebilirliğini derleyicide hataları bularak geliştirdi.

<span class="mw-page-title-main">Brian Kernighan</span>

Brian Wilson Kernighan, Kanadalı bilgisayar bilimcisidir.

Type 56, Çin yapımı bir piyade tüfeğidir. Silah, AK-47 ve AKM tüfekleri üzerinden geliştirilmiştir ve 1956 yılında üretimine başlanmıştır. 1981 yılında yerini Type 81'e bırakmış olup günümüzde Norinco tarafından ihracat amacıyla üretilmektedir.

Smarty, PHP ile yazılmış bir şablon motorudur. Özellikle web geliştirirken tasarım ve yazılım süreçlerinin birbirinden bağımsız hale getirilmesini sağlayan bir araç olarak tanınmaktadır.

<span class="mw-page-title-main">Go (programlama dili)</span> programlama dili

Go, statik tipli, derlenen, yüksek seviyeli bir programlama dilidir. Robert Griesemer, Rob Pike ve Ken Thompson tarafından Google'da 2007 yılından itibaren geliştirilmeye başlanmıştır. Sözdizimi C'ye benzerdir fakat hafıza erişimi güvenlidir, kullanılmayan hafıza kaynakları sisteme otomatik olarak geri verilir, interface veri tipleri sayesinde yapısal tip sistemini destekler ve eşzamanlı (concurrent) çalışan işlemlerin (process) ortak hafıza kullanabilmelerinin yanında birbiriyle iletişim kurmalarını sağlayan ögelere sahiptir. Eski alan adı golang.org olduğundan sık sık golang ismiyle anılır ama asıl adı Go'dur.

Çokbiçimlilik, bir türün bir başka tür gibi davranabilme ve bu tür gibi kullanılabilme özelliğidir. Nesne yönelimli programlama dillerinde çokbiçimlilik özelliği ise aynı temel sınıftan türetilmiş olan sınıflarda paylaşılan, başka bir ifadeyle aşırı yüklenen aynı metodun bu sınıflarda farklı şekillerde uyarlanabilmesidir. Nesnenin davranışı çalışma anında belirlendiği için programcılar, çokbiçimlilik özelliği sayesinde nesnelerin türünü önceden bilmek zorunda kalmaz.

Swift, Apple tarafından iOS ve macOS platformlarına iOS ve Mac uygulamaları geliştirmek için oluşturulan, derlenerek çalışan güçlü ve kullanımı kolay, nesne yönelimli bir programlama dili.

<span class="mw-page-title-main">Rust (programlama dili)</span> sistem programlama dili

Rust; açık kaynak kodlu, çoklu paradigmalı, ilk olarak Mozilla tarafından dizayn edilen ve Rust Foundation tarafından geliştirilmekte olan; performansa, güvenliğe ve eş zamanlı işlem yapabilmeye odaklanmış bir sistem programlama dilidir. Rust, söz dizimi olarak C++ diline benzemektedir. Rust, "güvenli, pratik ve hızlı" bir dil ortaya koymak amacı ile tasarlanmıştır.

<span class="mw-page-title-main">Z notasyonu</span>

Z notasyonu İngilizce telaffuz: [ z ɛ d], bilgi işlem sistemlerini tanımlamak ve modellemek için kullanılan bir tanımla dilinin resmi notasyonudur. Genel olarak bilgisayar programı ve bilgisayar tabanlı sistemlerin belirtilmesi hedeflenmektedir.

Kotlin, Java sanal makinesi (JVM) üzerinde çalışan ayrıca JavaScript kaynak koduna veya LLVM ile makine koduna derlenebilen, statik tipli bir programlama dilidir. İlk geliştirme Sankt-Peterburg, Rusya merkezli JetBrains programcıları tarafından yapılmıştır. İsmi Kotlin Adası'ndan gelmektedir. Java ile uyumlu sözdizimi olmasa da, Kotlin Java kodu ile birlikte çalışmak üzere tasarlanmıştır. Kotlin, Apple'ın Swift diline benzemektedir.

Bilgisayar bilimi ve bilgisayar programlamasında sistem zamanı, bir bilgisayar sisteminin zaman geçişi kavramını temsil eder. Bu anlamda, zaman, takvim üzerinde gün geçişi de içerir.

C17, ISO/IEC 9899: 2018 için kullanılan gayriresmî addır. 2017'de geliştirilmesi devam ettiği ve resmi olarak Haziran 2018'de basıldığı için C18 olarak da bilinir. C programlama dilinin yayınlanan en son resmi standardıdır. C11'in yerini almıştır ve yerine C2y'in gelmesi beklenmektedir.

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.

Amerika Birleşik Devletleri askeri standartları, "MIL-STD", "MIL-SPEC" ve ya "MilSpecs" olarak adlandırılan ve ABD Savunma Bakanlığı tarafından standardizasyon hedeflerine ulaşılmasına yardımcı olmak için kullanılan standartlardır.

C++ Standard Kütüphanesi, C++ programlama dilinde ve C++ ISO Standard'ıyla yazılmış sınıfların ve fonksiyonların koleksiyonudur.

C23, C programlama dilinin açık standard taslağıdır ve ISO/IEC 9899:2024 olarak yayınlanması ve C17'nin yerini alması beklenmektedir. 2016'da gayriresmi olarak C2x ve adıyla üzerinde çalışılmaya başlanmıştır ve Ekim 2024'te yayınlanması beklenmektedir. C23'ün en son taslağı 1 Nisan 2023'te yayınlanmıştır ve genel erişime açıktır. WG14 C2x taslağı için ilk olarak Ekim 2019 toplanmış, 2020'te COVID-19 pandemisi nedeniyle toplantılar sanal olarak uzaktan yapılmış, sonrasında telekonferans toplantıları 2024 boyunca devam etmiştir. Haziran 2024'teki açık standardta 'C23'ün bitiminden sonra, "C2y" olarak adlandırıldığı' belirtilmiştir.