C++ | Auto ile Type Deduction(Tür Çıkarımı) & Decltype

Bir değişken tanımlarken onun türünü belirtmemek, kod yazarken sürekli yanlış bir şeyler yapıyorum hissi uyandırmıştır. İlk olarak Python’da karşılaştığım bu durumun bir benzerini ile C++ öğrenirken karşılaştım. Python da değişken tanımlarken hiç bir anahtar kelime kullanmadan değişken tanımlayabiliyorduk.
Örneğin;
variable = 5 # dediğimizde değişken int olurken
aynı değişken için
variable=”SelcukAltinay” dedigimiz zaman, aynı değişken başlangıçta int olarak tanımlanmasına rağmen sonradan string ifadesine dönüşebiliyordu.
C++’ta yapılan işlem aslında python’daki ile çok farklı olsa bile bu iki terimle ilk karşılaştığımda bana benzer bir izlenim uyandırmıştı.
Aslında burada yapılan işlem derleyiciye “bak kardeş, ben sana auto anahtar kelimesi ile bir tanımlama yaptığım zaman, ilk verdiğim değere göre bir tür çıkarımı yap” demiş oluyoruz.

Bunun yanında tür tanımlamalarında kullabileceğimiz bir anahtar kelime ise decltype anahtar kelimesi. Decltype ile bir ifadenin tür çıkarımı yapılabilir ve çıkarılan bu tür bir değişken tanımlamada kullanılabilir.