- GCC 15, çok sayıda C++26 özelliği ekledi ve bazı C++23 özelliklerini de iyileştirdi
- Başlıca eklemeler arasında Pack Indexing, Variadic Friends, silme nedenini belirtme, yapısal bağlama koşul ifadeleri yer alıyor
- Yeni derleyici seçenekleri ve uyarılar da eklenerek geliştirici deneyimi iyileştirildi
- C++ modül desteği güçlendirildi ve şablon derleme hızına yönelik optimizasyonlar yapıldı
- GCC 15, Fedora 42’nin varsayılan derleyicisi olarak benimsendi ve yakında Red Hat GCC Toolset içinde de sunulacak
GCC 15’in Yeni C++ Özellikleri
- GCC 15.1, 25 Nisan 2025’te yayımlandı ve C++26 özelliklerini ciddi biçimde devreye almaya başladı
- Varsayılan standart hâlâ
gnu++17; en yeni özellikler -std=c++23, -std=c++26 gibi seçeneklerle etkinleştirilebiliyor
- C++20, C++23 ve C++26 özellikleri hâlâ deneysel (experimental) durumda
C++26’nın Başlıca Özellikleri
-
Pack Indexing
- Variadic Template argümanlarında belirli bir öğeye
pack...[N] sözdizimiyle doğrudan erişilebiliyor
- Yinelemeli hilelere gerek kalmadan ilk argüman gibi öğelere temiz biçimde başvurulabiliyor
-
Structured Bindings için öznitelik belirtme
- Yapısal olarak bağlanan değişkenlerin her birine ayrı ayrı
[[attribute]] uygulanabiliyor
- Örneğin yalnızca belirli bir bağlama değişkeni
[[deprecated]] olarak işaretlenebiliyor
-
Silinen fonksiyonlara açıklama ekleme
= delete("neden") sözdizimiyle silinmiş bir fonksiyon çağrısının hatasına mesaj eklenebiliyor
-
Variadic Friends
- Şablon sınıflarda birden fazla tür tek seferde
friend olarak bildirilebiliyor
- Passkey pattern gibi erişim denetimini güçlendiren yapılarda faydalı
-
constexpr Placement New
std::allocator ve placement new, constexpr bağlamında kullanılabiliyor
-
Yapısal bağlamaları koşul ifadelerinde kullanma
if, while, switch koşulları içinde yapısal bağlama bildirimi yapılabiliyor
- Koşul değerlendirmesi, derleyicinin ürettiği dahili bir değişken üzerinden gerçekleştiriliyor
-
Eksik türlerin silinmesinin yasaklanması
delete veya delete[], eksik türlerde kullanılırsa C++26 modunda derleme hatası oluşuyor
-
Oxford virgülü uyarısı
- Variadic fonksiyon bildirimlerinde
, ... yerine yalnızca ... kullanılan desen C++26’da uyarı veriyor
-
Dizi karşılaştırmasının kaldırılması
- Diziler arasında
== karşılaştırması yapan kod artık hata olarak işleniyor
- Bu durum önceki C++20’de uyarıydı; artık C++26 modunda derleme hatasına yükseltildi
-
#embed yönergesi
- İkili verileri kaynak koda doğrudan gömmeye yarayan
#embed desteği eklendi
Henüz yorum yok.