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

Modern C++ (4) : Smart Pointers – II

Evet arkadaşlar akıllı işaretçiler serüvenimize devam ediyoruz. Bu yazımda akıllı C++11 ile gelen shared_ptr ve weak_ptr sınıflarını inceleyeceğiz. İlk yazıma aşağıdaki adresten ulaşabilirsiniz. Modern C++ (4) : Smart Pointers – I std::shared_ptr Akıllı işaretçi denildiğinde akla gelen ilk sınıf std::shared_ptr. std::unique_ptr’dan farklı olarak “reference counting”  dediğimiz kabiliyeti barındıran, içerdiği nesnenin birden fazla sınıf tarafından kullanılmasına… Continue reading

Modern C++ (3): Uniform Initialization, override/final, default/delete, constexpr, vb.

Bir diğer Modern C++ yazım ile sizlerle birlikteyim 🙂 Önceki Modern C++ yazılarıma aşağıdaki bağlantılardan ulaşabilirsiniz. Modern C++ (1): nullptr, enum sınıfları, range-based döngüler, auto Modern C++ (2): C++ 11 Yenilikleri Bu yazımızda C++ 11 ile gelen yenilikleri incelemeye devam edeceğiz. C++11 ile gelen bütün yenilikler için yukarıdaki ikinci yazıma ulaşabilirsiniz. Bu yazımda diğer yenilikler… Continue reading

Modern C++ (1): nullptr, enum sınıfları, range-based döngüler, auto

Gerek akademik/iş hayatımda gerekse kişisel projelerimde ağılıklı olarak kullandığım programlama dili C++. Gerçi artık bir çok güçlü ve istediklerinizi hızlı bir şekilde gerçekleştirilmesine olanak sağlayacak programlama dilleri olsa da (C#, Ruby, Kotlin, Python, Java, vs), ben C++ ı daha çok tercih ediyorum. İlk başlarda ilgilendiğim konularda (2B/3B bilgisayar grafikleri, oyun geliştirme, simülasyon sistemleri, gömülü sistemler)… Continue reading