top of page


C++ Dilinde std::range
C++20 ile gelen Ranges Library, standart algoritma ve iterator kütüphanelerinin doğal bir evrimidir. Temel amaç, algoritmaların daha okunabilir, daha güvenli ve birbirine zincirlenebilir (composable) şekilde kullanılmasını sağlamaktır. Klasik STL algoritmalarında begin() ve end() çağrılarını manuel vermek gerekirken, ranges ile koleksiyonun kendisi doğrudan algoritmaya geçirilebilir. Böylece hem hata olasılığı azalır hem de kodun niyeti daha net ifade edilir. Ranges ayn

Yusuf Hançar
Dec 27, 202567 min read


C++ Dilinde std::span / std::range
std::span: non-owning view (C++20) ve extent (static/dynamic) modeli C++20 ile eklenen std::span, contiguous (bitişik) bellek blokları için string_view’ın genelleştirilmiş hâlidir: “pointer + length” şeklinde non-owning bir görünüm sağlar. std::span<T, Extent>: bitişik (contiguous) eleman dizisini sahip olmadan (non-owning) gösteren bir view. Tipik temsili: dynamic extent → T* + size (çoğunlukla 2 word) static extent → sadece T* (çoğunlukla 1 word) (Gerçek sizeof platfo

Yusuf Hançar
Dec 26, 202511 min read


C++ Dilinde std::invoke
C++17 ile birlikte dile eklenen std::invoke, farklı türde çağrılabilir nesneleri (callable) tek bir ortak arabirim üzerinden çalıştırabilmemizi sağlayan küçük ama güçlü bir adaptördür. Normalde bir fonksiyonu doğrudan ismiyle çağırabiliriz, bir fonksiyon pointer’ını çalıştırabiliriz ya da bir üye fonksiyon göstergesi üzerinden çağrı yapabiliriz. Ancak her durumda sözdizimi biraz farklılık gösterir. İşte std::invoke, bu farklılıkları ortadan kaldırarak tek tip ve güvenli bir ç

Yusuf Hançar
Sep 18, 20259 min read
bottom of page


