The Rule of Three / Five or Six

08:16
C++11'den önce bu kural Rule of Three olarak ele alınmış ve C++11'le gelen taşıma (move) semantiği ile kurala ilişkin işlev sayısı artmıştır. Bu kural bir sınıf tanımı içinde birbiriyle ilişkili toplamda 6  özel işleve ilişkindir. Bunlar; default constructor copy constructor     ...

Algorithm | any_of, all_of, none_of algoritmaları

Algoritmaların template bildirimleri C++11 ile gelen bu üç algoritma lambdalarla birlikte çok faydalı biçimlerde kullanılabilmektedir.  Üç algoritma içinde şablondan üretilecek fonksiyonun ilk iki parametresi  kontrol edilmesi gereken aralığa ilişkin başlangıç ve bitiş itearator değerleri,...

The Rule of Zero

06:44
"The Rule of Zero" kuralı sınıfınıza ait destructor, copy constructor, move constructor, copy assignment operator ve move assignment operator fonksiyonlarının hiçbirinin doğrudan bizim tarafımızdan tanımlanmaması anlamına gelmektedir. Peki ne zaman? bu kurala uymak gerekir....

PIMPL Idiom (PImpl idiyomu) - 1

12:12 , ,
"Pointer based IMPlementation" veya daha yaygın/kısa ismiyle PImpl bir C++ programlama tekniğidir. Neden böyle bir kullanım yöntemi geliştirilmiştir derseniz: Derleme bağımlılıkları azaltarak yapılacak değişikliklerden kullanıcı kodlarını en az etkilenmesini sağlama Kaynak kodun dış dünyaya açılmasını...

Multithreading | std::mutex - 1

Mutex (mutual exclusion)  işletim sistemlerinde olan bir senkronizasyon nesnesidir. Bir mutex'e ayni anda sadece bir thread sahip olabilmektedir. Multithreading sistemlerde deadlock 'lari ve race condition 'ları  engellemek icin kullanilan bir senkronizasyon nesnesidir. Mutex bir...

Multithreading | std::thread - 1

İşletim sistemleri terminolojisinde çalışmakta olan programlara process denilmektedir. Thread'ler için lightweight process'ler denilmektedir. Thread'ler process'lerin farklı çizelgelenen akışlarıdır. İşletim sistemi tüm process'lerin thread'lerini bir çizelgede tutmakta ve bunları zaman paylaşımlı...

Sınıf Şablonları (Class Templates)

08:33 ,
Sınıf şablonları da fonksiyon şablonlarında olduğu gibi benzer amaçlar için kullanılmaktadır. Generic programming denilen bu amaç tek bir kod yazıp birden fazla defa kullanılmasına olanak sağlamasıdır.  Sınıf şablonu örneği - 1 Sınıf şablonlarına ilişkin örnek kod yazımı sırasında görebileceğimiz...

Fonksiyon Şablonları (Function Templates)

06:27 , ,
Template'in kelimesinin anlamı şablon ve C++'daki function template olarak kullanım şekli de fonksiyonların şablon olarak yazılmasına olanak sağlamasıdır. Bu sayede yazılan fonksiyonun farklı parametre  türlerine  uygun olarak derleyici tarafından istenen biçimlerde yazılmasına olanak sağlamasıdır....

decltype specifier (decltype fonksiyonu) - 1

07:25 ,
decltype, C++11 ile gelen ve çoğunlukla generic programlamada kullanılan özelliklerden biridir. Türden bağımsız (generic) olarak yazılan kodlarda, bir ifadenin türünün derleme zamanında derleyici tarafından yapılacak bir çıkarımla anlaşılması gereken durumlarda yardımımıza yetişmektedir.  Kısaca...

Generalized Constant Expressions (Genelleştirilmiş sabit ifadeler) - 1

12:53 ,
C++11'de, yazılan programların her zamankinden daha hızlı çalışmasına olanak tanıyan bir çok özellik bulunmaktadır. Bu özelliklerden biri de genelleştirilmiş sabit ifadeler (Generalized Constant Expressions), yani yazılan programların bazı parçalarının derleme zamanında hesaplamasından yararlanılmasını...