Haftalık C++ 5 – std::invoke

Merhaba sevgili yazılımperver dostlarım. Yine bir haftalık C++ yazısı ile sizlerle birlikteyim. Bu yazımda sizler ile birlikte C++ 17 ile birlikte sunulmaya başlanan std::invoke() metoduna bir göz atacağız. std::invoke() metodu <functional> kütüphanesi ile sunulmakta. Bu metot sayesinde farklı çağrılabilir nesneler (serbest fonksiyon işaretçileri, sınıf metodu işaretçileri, lambda metotları, fonksiyon nesneler), tek bir mekanizma ile çağrılabilecek. Bu… Continue reading

Haftalık C++ – 4 Yapısal Bağlama (“Structured Binding”)

Merhabalar arkadaşlar, yeni bir haftalık C++ yazısı ile birlikteyiz. Bu yazımızda da modern C++ 17 ile birlikte gelen bir diğer kabiliyet olan “Structured Binding”‘e bakacağız. Ben yazımda buna kısaca “yapısal bağlama” diyeceğim. Bu kabiliyet bize ne kazandırıyor? Kısaca bu kabiliyet ile birlikte birden fazla değişkenin tek bir ifade ile “tuple”/”pair” ya da benzeri yapıları kullanarak… Continue reading

Haftalık C++ 3 – if/switch ilklendirme ifadeleri

Bu yazımda, C++ 17 ile gelen ve değişkenlerin tanımlı olduğu kapsamları kısıtlamamıza yardımcı olacak yeni bir kapsam mekanizmasından bahsedeceğim. Bildiğiniz gibi, tanımladığınız değişkenlerin kapsamlarını olabildiğince küçük olacak (yani geçerli olduğu kapsamı azaltmak) şekilde tanımlamak tavsiye edilen bir yöntemdir. Değişkenleri olabildiğince küçük bir kapsam içerisinde ve ilk kullanıma yakın tanımlayın. Peki neden? Her ne kadar çoğu… Continue reading

Haftalık C++ – 1 (“Erase-remove idiom”)

Merhaba sevgili Yazılımperver dostlarım. Bu yazım ile birlikte yeni bir yazı serisine (Haftalık C++) yelken açıyoruz. Bu yazılar, daha önce Modern C++ başlığı ile yoğun bir şekilde işlediğimiz C++ 11 yazılarına nazaran çok daha kısa kod parçaları veya konular içeriyor olacak. Bu kodların büyük kısmını, benim kullandığım kodlardan, ya da kitap veya internette gördüğüm kütüphane… Continue reading

Modern C++ (6) : Lambda İfadeleri

Evet arkadaşlar, C++ yazılarımıza kaldığımız yerden devam ediyoruz. Lambda yazım ile temel C++ 11 özelliklerini tamamlamış olacağız. Sonrasında belki STL için de bir yazı yazıp, daha sonra C++ 14/17/20’e yelken açabiliriz. Aslında oldukça geniş konu, fakat ben bu yazımda sizlere temel noktaları aktarmaya çalışacağım. Öncelikle  benim gibi bilgisayar bilimleri ile uğraşanlarımız Lambda denilince hemen aklınıza… Continue reading

Modern C++ (5) : Taşıma Semantikleri

Evet bir diğer Modern C++ 11 ile yazımız ile tekrar birlikteyiz. Bu yazımızda C++ 11 ile gelen önemli değişikliklerden biri olan “Move Semantics” yani Taşıma Semantiklerinden sizlere bahsedeceğim. Bu konu da derya deniz bir konu. Bu yazımda sadece önemli hususların üzerinden geçip, genel mantığı sizlere aktarıp, kalanını naçizane sizlere bırakacağım 🙂 Daha lambda’lar var gardaşım… Continue reading