RTTI | Run-Time Type Information - 1

RTTI, Run-Time Type Information'ın kısaltmasıdır. Çalışma zamanında tür bilgisinin elde edilmesi anlamına gelmektedir. Bunun için ilgili türlerin polimorfik olması gerekmektedir.  Bir türün polimorfik olması için en az bir tane kendisinde veya base türünde virtual bir metodun tanımlanmış olması...

Metaprogramming | Variadic Templates & Fold Expressions - 1

C++11 değişken parametreli şablonları desteklemektedir. Dile gelen bu araçla birlikte hem sınıf şablonları (class templates) hem de fonksiyon şablonları (function templates) artık istenen sayıda parametreye sahip olabiliyor. Değişken sayıda parametreye "parametre paketi" (parameter pack) deniyor. Bir...

Metaprogramming | basic implementation of std::enable_if and SFINAE - 1

std::enable_if C++11 ile hayatımıza giren bir özellik ve Metaprogramming yapılırken SFINAE olarak bilinen idiyomun en önemli kullanım senaryosunu oluşturmaktadır. std::enable_if'in olası implementasyonu aşağıdaki gibidir.Burada kritik nokta birinci template için sınıfın içinde hiç bir bildirim yapılmazken...

ADL (Argument Dependent Lookup) - 1

14:35 ,
Compiler isim araması yaparken bulunduğu isim alanı ve global isim alanı dışında fonksiyon parametresine bağlı olarak bir arama daha yapmaktadir.Yukaridaki en temel Argument Dependent Lookup örneğinde görebileceginiz üzere normalde alert() fonksiyonu baska bir isim alanı içerisinde olsa da fonksiyonun...