İçeriğe atla

C++ Standard Kütüphanesi

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

Genel bakış

C++ Standard Kütüphanesi pek çok jenerik tutucu (veri yapısı gerçeklenimi, konteynır), bu tutucular üzerinde işlem yapmaya yarayan fonksiyon, fonksiyon nesnesi, jenerik string ve akış, dil destek özellikleri ve sık kullanılan bazı fonksiyonlar sağlar.

C++ Standard Kütüphanesi, Standard Template Library (STL) baz alınarak geliştirildi ve jenerik programlama araştırmalarından ve STL'in geliştiricileri Alexander Stepanov [en] ve Meng Lee'den izler taşır.[1][2] C++ Standard Kütüphanesi ile STL pek çok ortak özellik barındırsa da birbirlerinin aynısı değildir.[]

C++ Standard Kütüphanesi'nin kayda değer özelliklerinden bir tanesi, jenerik algoritmaların sözdizim ve anlamının yanında, performans gereksinimlerini de belirlemesidir. Bu gereksinimler çoğu zaman iyi bilinen bir algoritmaya karşılık gelir ama bu, o algoritmanın kullanılmasını gerektirmez. Çoğu durumda lineer O(n) veya lineeritmik O(n log n) zamanlı gereksinimlerdir ama O(n log2 n) zamana da izin verilebilir.

C++ Standard Kütüphanesi, 1990lardan itibaren C++ ISO Standardizasyon çabası çerçevesinde ISO standardizasyonuna tabi tutulmuştur. 2011 sonrasında genişletilmiş ve her üç yılda bir[3] C++ standardıyla birlikte güncellenmektedir.

Gerçeklenimleri

AdOrganizasyonAnasayfaKısaltmaLisansEn son sürüm
GNU C++ Standard Library GNU Projesi and Free Software Foundation [1]libstdc++ GPLv3 with GCC Runtime Library Exception Her yıl
LLVM C++ Standard Library LLVM Developer Group [2]libc++ Apache License 2.0 with LLVM Exceptions Her 2 haftada
NVIDIA C++ Standard Library Nvidia[3]libcu++ Apache License 2.0 with LLVM Exceptions 15 Mart 2023 (18 ay önce) (2023-03-15)
Microsoft C++ Standard Library Microsoft[4]MSVC STL Apache License 2.0 with LLVM Exceptions Her gün
HPX C++ Standard Library for Parallelism and Concurrency STELLAR Group [5]HPX Boost Software License 1.0 29 Mayıs 2024 (3 ay önce) (2024-05-29)
Electronic Arts Standard Template Library Electronic Arts[6]EASTL BSD lisansları9 Haziran 2023 (15 ay önce) (2023-06-09)
Dinkum C++ Library Dinkumware [7]Bilinmiyor Ticari Bilinmiyor
Cray C++ Standard Library Cray User Group [8]Bilinmiyor Ticari Bilinmiyor

Geliştirmesi devam etmeyenler

Apache C++ Standard Library

Apache C++ Standard Library bir başka açık kaynak gerçeklenimdir. En başta Rogue Wave Software tarafından ticari olarak geliştirmış, sonrasında Apache Yazılım Vakfı'na bağışlanmıştır.[4] Ancak beş sene kadar yeni bir yayın yapmadı ve Apache Yazılım Vakfı yönetimi projeyi sonlandırma kararı aldı ve rafa kaldırdı.[5]

Ayrıca bakınız

Aşağıdaki kütühaneler C++ Standard Kütüphanesi'nin büyük bir bölümünü gerçekler:

NameHomepageDescription
Abseil[9]Google tarafından geliştirilen açık kaynaklı bir kütüphane seti
Folly[10]Facebook tarafından yaygın olarak kullanılan çeşitli C++14 kütüphaneleri
Bareflank Support Library[11]Herşeyi derleme zamanında çalıştırabilen bir C++ kütüphanesi

Standard modüller

Modüllerin C++20 ile tanıtılmasından, C++23 standardına kadar standard kütüphane modülleri için destek bulunmamaktadır. İsimlendirilmiş modüller, modüllerden önce başlık dosyalarıyla dahil edilen global ve std isim alanındaki tüm bildirimleri kolayca dahil etmeye yarar.

​std​
std isim alanında başlık dosyalarında bulunan tüm yapıları sağlar.
​std.compat​
std isimlendirilmiş modulünün getirdiklerinin yanı sıra global isim alanında tanımlanmış C kütüphanesindeki yapıları da sağlar.

Standard başlıklar

Aşağıdaki dosyalar C++ standart kütüphanesinin bildirimlerini içerir.

Genel

​<any>​
C++17 ile eklendi. Silinmiş-tür sınıf std::any'i sağlar.
​<atomic>​
C++11 ile eklendi. Sınıf şablon std::atomic ve onun pek çok özelleştirmeleri ile atomik operasyonları sağlar.
​<chrono>​
std::chrono::duration, std::chrono::time_point ve saat yapısı gibi zaman yapılarını sağlar. C++20 ile birlikte; takvim, zaman dilimi, daha fazla saat (clock), string chrono formatlama ve pek çok zamansal özellik eklendi.
​<concepts>​
C++20 ile eklendi. concepts esas kütüphanesini sağlar.
​<expected>​
C++23 ile eklendi. Bir dönüş-türü olan std::expected şablon sınıfını sağlar.
​<functional>​
Standard algoritmalarla kullanılmak için tasarlanmış pek çok fonksiyon nesnesini sağlar.
​<generator>​
C++23 ile eklendi. Range'ler ile birlikte çalışmayı da destekleyen coroutine üreticisini sağlar.
​<memory>​
Sınıf şablon std::unique_ptr'ın da içinde bulunduğu bellek yönetimi için kolaylıklar sağlar.
​<memory_resource>​
C++17 ile eklendi. Davranışları çalışma zamanında değişebilen çokbiçimli (polimorfik) bellek tahsiscileri (memory allocator) oluşturmak için olanaklar sağlar.[6]
​<optional>​
C++17 ile eklendi. Türün bir değere sahip olup olmadığını modelleyen bir seçim türü olan std::optional sınıf şablonunu sağlar.
​<scoped_allocator>​
C++11 ile eklendi. std::scoped_allocator_adaptor sınıf şablonunu sağlar.
​<stacktrace>​
C++23 ile eklendi. Hata ayıklama yaparken kullanılabilecek fonksiyon çağrılarını gösteren yığın yapısı işlevlerini sağlar.
​<stdexcept>​
std::logic_error ve std::runtime_error gibi std::exception sınıfından türetilmiş standard harici durum sınıflarını bulundurur.
​<system_error>​
C++11 ile eklendi. std::error_code sınıfını tanımlar.
​<tuple>​
C++11 ve TR1 ile eklendi. Heterojen tür tutucusu olan std::tuple şablon sınıfını sağlar.
​<type_traits>​
C++11 ile eklendi. Türlerle çalışmayı kolaylaştıran metaprogramlama araçlarını sağlar.
​<utility>​
Sınıf şablonu std::pair (iki elemanlı tuple), derleme zamanı tamsayı dizileri, std::move, std::forward gibi fonksiyonları ve çok daha fazlasını sağlar.
​<variant>​
C++17 ile eklendi. Bir tagged union türü olan std::variant sınıf şablonunu sağlar.

Dil desteği

​<compare>​
C++20 ile eklendi. Üç-yönlü karşılaştırma operatörü desteği sağlar.
​<coroutine>​
C++20 ile eklendi. coroutine desteği sağlar.
​<exception>​
Sıradışı durum yönetimi ile ilgili tür ve fonksiyonları sağlar.
​<initializer_list>​
C++11 ile eklendi. İlk değer atama listesi desteği sağlar.
​<limits>​
Temel nümerik türlerin özelliklerini açıklayan std::numeric_limits sınıf şablonunu sağlar.
​<new>​
new ve delete operatörleri ile C++ hafıza yönetiminde kullanılan diğer fonksiyon ve türleri sağlar.
​<source_location>​
C++20 ile eklendi. __LINE__ gibi makrolara alternatif olarak kaynak kod hakkında, kod satırı numarası ve sütünunun yeri, fonksiyon adı, dosya adı hakkında bilgi sağlar.
​<stdfloat>​
C++23 ile eklendi. Genişletilmiş floating-point türleri sağlar.
​<typeinfo>​
Çalışma zamanı tür bilgisi desteği sağlar.
​<version>​
C++20 ile eklendi. C++ standard kütüphanesinin gerçeklenim durumu hakkında bilgi sağlar.[7]

Tutucu türler

​<array>​
C++11 ve TR1 ile eklendi. Sabit boyutlu (uzunluğu derleme zamanında bilinen) dizi olan sınıf şablonu std::array'i sağlar.
​<bitset>​
Bit için özelleştirilmiş sınıf std::bitset'i sağlar. Bit türü için dizi yapısıdır.
​<deque>​
Çift yönlü kuyruk (double-ended queue) gerçeklenimi olan std::deque sınıf şablonunu sağlar.
​<flat_map>​
C++23 ile eklendi. Bir konteynır adaptör sınıf şablonu olan std::flat_map ve std::flat_multimap'i sağlar.
​<flat_set>​
C++23 ile eklendi. Konteyner adaptör sınıf şablonu olan std::flat_set ve std::flat_multiset'i sağlar.
​<forward_list>​
C++11 ve TR1 ile eklendi. Bağlı liste gerçeklenimi olan std::forward_list sınıf şablonunu sağlar.
​<list>​
Çift yönlü liste (doubly linked list) gerçeklenimi olan std::list sınıf şablonunu sağlar.
​<map>​
Sıralı ilişkili dizi (associative array) yapısı gerçeklenimi olan std::map ve std::multimap

sınıf şablonlarını sağlar.

​<mdspan>​
C++23 ile eklendi. std::span'e benzer şekilde fakat çok boyutlu (multi dimensional) olan std::mdspan sınıf şablonunu sağlar.
​<queue>​
Tek yönlü kuyruk yapısı gerçeklenimi olan std::queue ve std::priority_queue adaptör sınıflarını sağlar.
​<set>​
Sınıf şablonu std::set ve std::multiset'i sağlar.
​<span>​
C++20 ile eklendi. Bitişik aralıklar için sahip olmayan (non-owning) bir görünüm (view) türü olan, sınıf şablonu std::span'ı sağlar.
​<stack>​
Bir yığın verı yapısı gerçeklenimi olan std::stack adaptör sınıfını sağlar.
​<unordered_map>​
C++11 ve TR1 ile eklendi. Karma tablosu veri yapısı gerçeklenimi olan std::unordered_map ve std::unordered_multimap şablon sınıflarını sağlar.
​<unordered_set>​
C++11 ve TR1 ile eklendi. std::unordered_set ve std::unordered_multiset sınıf şablonlarını sağlar.
​<vector>​
Dinamik (boyu çalışma zamanında değişebilen) dizi veri yapısı gerçeklenimi olan std::vector şablon sınıfını sağlar.

İteratör'ler ve Range'ler

​<algorithm>​
Range ve tutucularla kullanılabilecek pek çok algoritma tanımı sağlar.
​<execution>​
C++17 ile eklendi. Paralelleştirilmiş algoritmalar için çalıştırılma yöntemleri tanımlar.
​<iterator>​
İteratör'lerle çalışan sınıf ve şablonları sağlar.
​<numeric>​
Genelleştirilmiş nümerik algoritmalar sağlar.
​<ranges>​
C++20 ile eklendi. Range ve tembel değerlendirilme adaptörleri sağlar.

Lokalizasyon

​<codecvt>​
Çeşitli karakter kodlamaları için kod dönüştürme yönleri sağlar. Bu başlık C++17 ile kullanımdan kaldırıldı.
​<locale>​
Çeşitli karakter kodlamalarını işlemek veya değiştirmeye yarayan sınıf ve fonksiyon tanımlarını bulundurur.
​<text_encoding>​
C++26 ile eklendi. Metin kodlama (text encoding) tanımları sağlar.

String

​<charconv>​
C++17 ile eklendi. Tam ve reel sayılar için string'e/string'ten dönüşüm araçları sağlar.
​<format>​
C++20 ile eklendi. std::format gibi string biçimlendirme araçları sağlar.
​<string>​
C++'ın standard string sınıf ve şablonlarını barındırır.
​<string_view>​
C++17 ile eklendi. Herhangi bir string için değiştirilemez ve aitlik almayan görüş türü (non-owning view) olan sınıf şablonu std::basic_string_view'i tanımlar.
​<regex>​
C++11 ile eklendi. Düzenli ifade kullanılarak string örüntü eşleştirme araçlarını sağlar.

Akışlar, Dosyalar ve Giriş/Çıkış

​<filesystem>​
C++17 ile eklendi. Dosya sistemi işlemleri ve bileşenleriyle ilgili kolaylıklar sağlar.
​<fstream>​
Dosya tabanlı giriş ve çıkış kolaylıkları sağlar.
​<iomanip>​
Çıkış biçimini şekillendiren araçlar sağlar. Örneğin, bir sayı çıkışa gönderilecekken kaç tabanında gösterileceği belirlenebilir.
​<ios>​
Akış işlemleri için pek çok temel tür ve fonksiyon sağlar.
​<iosfwd>​
Giriş/çıkış sağlayan pek çok sınıf şablonu için önbildirim sağlar.
​<iostream>​
C++ için temel giriş çıkış operasyonlarını sağlar.
​<istream>​
std::istream'i ve diğer girişle ilgili sınıfları sağlar.
​<ostream>​
std::ostream'i ve diğer çıkışla ilgili sınıfları sağlar.
​<print>​
C++23 ile eklendi. Hem C, hem de C++ çıkış akışını destekleyen std::print gibi araçları bulundurur.
​<spanstream>​
C++23 ile eklendi. std::spanstream ve diğer sabit karakter tampon (buffer) G/Ç akışlarını sağlar.
​<sstream>​
std::stringstream string manipülasyon sınıflarını sağlar.
​<streambuf>​
Dosya ve string'lere belirli karakter türü dizileri şeklinde okuma yazma işlevselliği sağlar
​<syncstream>​
C++20 ile eklendi. std::osyncstream'i ve senkronize edilmiş çıkış akışları için destekleyici sınıfları sağlar.

Thread destek kütüphanesi

​<barrier>​
C++20 ile eklendi. Bir yeniden kullanılabilir thread (iş parçacığı) bariyeri olan std::barrier'ı sağlar.
​<condition_variable>​
C++11 ile eklendi. Koşul değişkenleri, thread'de (veya bir başka thread'de) bir koşulun oluştuğu bildirilene kadar veya belli sistem zamanına ulaşıncaya dek, thread'in çalışmasını durdurmaya yarayan eşzamanlama öğelerini (synchronization primitives) sağlar.
​<future>​
C++11 ile eklendi. Thread'de çalışan bir fonksiyonun sonucuna (bu bir değer veya sıradışı durum olabilir) ulaşmayı sağlayan yapıları barındırır.
​<hazard_pointer>​
C++26 ile eklendi. Paylaşılmış veriye karşılıklı hariç tutma (mutux) ve kilit (lock) kullanmadan erişmeyi sağlayan std::hazard_pointer yapısını sağlar.
​<latch>​
C++20 ile eklendi. Tek kullanımlık thread bariyeri olan std::latch'i sağlar.
​<mutex>​
C++11 ile eklendi. Mutex, lock, call_once gibi karşılıklı hariç tutma (mutual exclusion) yapılarını sağlar.
​<rcu>​
C++26 ile eklendi. Oku-kopyala-güncelle (read-copy-update) mekanizmalarını sağlar.
​<shared_mutex>​
C++14 ile eklendi. Paylaşımlı karşılıklı hariç tutma yapısı sağlar.
​<semaphore>​
C++20 ile eklendi. Kaynak sayısını modelleyerek paylaşılmış kaynaklara thread erişimini kısıtlayan semaphore yapısını kısıtlayan kaynak sayısını modelleyen sunar.
​<stop_token>​
C++20 ile eklendi. Eşzamansız olarak (asynchronously) bir işleve belli bir zamanda çalışmayı durdurma isteğinde bulunma yapılarını barındırır. Böylesi bir istek, durdurma isteği (stop request) olarak adlandırır.
​<thread>​
C++11 ile eklendi. Thread'lerle çalışma isim alanını ve sınıfını sağlar.

Nümerik kütüphanesi

C++ programlarının yarı sayısal işlemler gerçekleştirmek için kullanabileceği bileşenler:

​<bit>​
C++20 ile eklendi. Bit işleme araçları sağlar.
​<complex>​
Sınıf şablonu olan std::complex'i ve çeşitli karmaşık sayı operasyonlarını tanımlar.
​<numbers>​
C++20 ile eklendi. std::numbers isim alanı altında matematik sabitleri sağlar.
​<random>​
C++11 ile eklendi. (Gerçekmiş gibi görünen (pseudo-)) Rassal sayı üretimi ve dağılımları ile ilgili yapıları tanımlar.
​<ratio>​
C++11 ile eklendi. Derleme zamanı rasyonel aritmatik tabanlı sınıf şablonlarını sağlar.
​<valarray>​
Sayı dizilerini ifade etmek ve işlemler yapmak için, std::valarray, std::slice_array, std::gslice_array, std::mask_array ve std::indirect_array sınıf şablonları ile std::slice ve std::gslice sınıflarını ve bunlarla ilgili fonksiyon şablonlarını sağlar.

C Standard Kütüphanesi

C Standard Kütüphanesi'nin her bir başlık dosyası C++ Standard Kütüphanesi'nde .h uzantısı kaldırılmış ve önüne 'c' getirilmiş olarak bulunur. Mesela 'time.h', 'ctime' olarak görünür. Bu başlık dosyalarıyla C Standard Kütüphanesi arasındaki tek fark, fonksiyonların std:: isim alanında bulunmasıdır. ISO C'de, standart kütüphane fonksiyonlarının makro kullanılarak gerçeklenmesine izin verilir, ancak ISO C++'ta buna izin verilmez.

Ayrıca bakınız

Kaynakça

  1. ^ Bjarne Stroustrup (1994). The Design and Evolution of C++ §8.5. Addison Wesley. ISBN 0-201-54330-3. 
  2. ^ Alexander Stepanov, Meng Lee (1 Ağustos 1994). "The Standard Template Library". HP Labs. 9 Kasım 1997 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Ekim 2017. 
  3. ^ "C++ IS Schedule 5 Mayıs 2024 tarihinde Wayback Machine sitesinde arşivlendi.", Herb Sutter
  4. ^ "Apache C++ Standard Library". 8 Nisan 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Mayıs 2024. 
  5. ^ Brett Porter (18 Temmuz 2013). "Apache C++ Standard Library and the Attic". stdcxx-dev mailing list. 23 Temmuz 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 27 Şubat 2014. 
  6. ^ Filipek, Bartlomiej. "Polymorphic Allocators, std::vector Growth and Hacking" (İngilizce). 29 Haziran 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 30 Nisan 2021. 
  7. ^ "Working Draft, Standard for Programming Language C++" (PDF). open-std.org. ISO/IEC. 1 Nisan 2020. s. 492. 27 Nisan 2020 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 30 Nisan 2021. 

Konuyla ilgili yayınlar

Dış bağlantılar

İlgili Araştırma Makaleleri

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

C, yapısal bir programlama dilidir. Bell Laboratuvarları'nda, Ken Thompson ve Dennis Ritchie tarafından UNIX işletim sistemini geliştirebilmek amacıyla B dilinden türetilmiştir. Geliştirilme tarihi 1972 olmasına rağmen yaygınlaşması Brian Kernighan ve Dennis M. Ritchie tarafından yayımlanan "C Programlama Dili" kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin yapımında %95'lere varan oranda kullanılmış, hâlen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir dildir. Keskinliği, programcıya sonsuz özgürlüğün yanında çok büyük hatalar yapabilme olanağı sağlamasıdır. Programlamanın gelişim süreciyle beraber programlamanın karmaşıklaşması, gereksinimlerin artması ile uygulama programlarında nesne yönelimliliğin ortaya çıkmasından sonra C programcıları büyük ölçüde nesne yönelimliliği destekleyen C++ diline geçmişlerdir.

<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.

<span class="mw-page-title-main">Java</span> açık kaynak kodlu, nesneye yönelik, zeminden bağımsız, yüksek verimli, çok işlevli, yüksek seviye, adım adım işletilen bir programlama dili

Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış açık kaynak kodlu, nesneye yönelik, platform bağımsız, yüksek verimli, çok işlevli, yüksek seviye, hem yorumlanan hem de derlenen bir dildir.

Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir.

İlk olarak HP tarafından geliştirilmeye başlanan, daha sonra C++ standardına dahil edilen generic programlama modeliyle geliştirilmiş kütüphanedir. Daha çok STL şeklinde kısa ismiyle anılır.

<span class="mw-page-title-main">İkili arama algoritması</span>

İkili arama, sıralı bir dizide, belirli değerin aranmasına yönelik bir algoritmadır. Her adımda, aranan değerin dizinin orta değerine eşit olup olmadığı kontrol edilir. Eşit ise aranan bulunmuştur. Aranan değer orta değerden küçükse, dizinin sıralı olduğu kabulünden, ortanın yukarısına bakmaya gerek kalmaz, arama dizinin başı ve orta değer arasında devam eder. Aranan ortadan büyükse arama orta ile son arasında devam eder. Her adımda dizi ikiye bölünür.

<span class="mw-page-title-main">Bellek yönetimi</span>

Ana belleğin işlemler arasında paylaştırılmasına ana bellek yönetimi ya da bellek yönetimi adı verilir. İşletim sisteminin bu amaçla oluşturulan kesimine de bellek yöneticisi adı verilir.

Veri yapısı, bilgisayar ortamında verilerin etkin olarak saklanması ve işlenmesi için kullanılan yapı.

Matematikte matematiksel programlama, eniyileme ya da optimizasyon terimi; bir gerçel fonksiyonu minimize ya da maksimize etmek amacı ile gerçek ya da tam sayı değerlerini tanımlı bir aralıkta seçip fonksiyona yerleştirerek sistematik olarak bir problemi incelemek ya da çözmek işlemlerini ifade eder. Örneğin bu problem şöyle olabilir:

<span class="mw-page-title-main">Drupal</span> web içerik yönetim sistemi

Drupal; ücretsiz, açık kaynaklı bir içerik yönetim sistemi ya da içerik yönetim'e odaklı bir altyapı yazılımıdır. Modüler yapısı sayesinde, web uygulama çatısı, topluluk portalı, forum ya da blog motoru olarak da kullanılabilmektedir. 2000'li yılların ortalarında Drupal esneklik, genişleyebilirlik, yönetim kolaylığı ve etkin bir topluluğun desteği ile popülerlik kazanmıştır.

<span class="mw-page-title-main">Dinamik dizi</span>

Dinamik dizi, tutabileceği eleman sayısının derleme zamanında bilinmesine gerek olmayan dizidir. Dinamik dizi tanımlandığında, kapasitesini belirten bir bellek tahsis edilir ve kullanımda kapasiteye erişildiğinde yeniden bir dinamik bellek tahsisi yapılır. Dinamik diziye elemanlar eklenebilir, diziden elemanlar silinebilir; dizinin boyutu azaltılabilir ve arttırılabilir. Bazı programlama dillerinde vektör adıyla anılan bu yapıyı birçok modern programlama dili kendi kütüphaneleriyle sunmaktadır.

Bilgisayar programlamada dinamik iletim, altyordam çağrılarının ilişkin altyordam başlangıç adresine dinamik olarak bağlanmasıdır. Bir diğer deyişle, dinamik iletim program metnindeki bir çağrı ile işletilen altyordamın programın çalışması sırasında birbirine bağlanması durumudur. Geri çağrı ve çokbiçimliliğin realize edilmesinde kullanılan bu bağlama yöntemi, yordamsal programlama dillerinde altyordam göstericileriyle gerçekleştirilirken, nesne yönelimli dillerde kalıtlama ve gerçekleştirme ilişkilerinin kullanılmasıyla otomatikman sağlanır. Altyordamların birinci sınıf dil öğesi olarak ele alındığı fonksiyonel programlama dillerinde ise, aynı işlevsellik altyordamların argüman olarak geçirilmesi ile sağlanabilir.

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.

Bcrypt, Niels Provos ve David Mazières tarafından Blowfish şifreleme yöntemi esas alınarak geliştirilmiş ve ilk kez USENIX’te, 1999 yılında sunulmuş bir parola özet fonksiyonudur. Rainbow table saldırılarına karşı salt kullanmasının yanı sıra adaptif bir fonksiyon olma özelliğine sahiptir. İterasyon sayacı arttırılarak yavaşlatılabilir ve bu sayede kaba kuvvet saldırılarına karşı dirençli kalabilmektedir.

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.

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

Carbon, Google tarafından "C++ Ardıl Dili" olarak oluşturulmuş deneysel bir genel amaçlı programlama dilidir. İlk olarak 2022 yılının Temmuz ayında Carruth Chandler tarafından CppNorth konferansında halka sunuldu. Dil, C++'ın belirlenen çeşitli eksikliklerini düzeltmeyi amaçlar, ancak bunun dışında benzer bir özellik seti de sağlar. Hedeflerinden biri, mevcut C++ kodu ile beraber çift yönlü birlikte çalışabilirliktir. Dil, C++'ın kullandığı ISO sürecinin aksine GitHub üzerinde tasarlanacak ve geliştirilecektir. Dil, Apache Lisansı altında ücretsiz ve açık kaynaklı bir proje olarak geliştirilmiştir.

Standard kütüphane, bir programlama dilinin gerçeklenimiyle birlikte sunulan kütüphanedir. Standard kütüphanenin kuralları dili açıklayan belge ile belirtilir ancak dilin evriminin yönetim modeline göre, kütüphanenin bir kısmı veya tamamı dilin topluluğu tarafından da belirtilebilir.

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.

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.