Haftalık C++ Videoları – 3 (“Back To Basics: The Best Parts of C++”)

Evet sevgili yazılımperver dostlarım, yeni bir video paylaşımı ile birlikteyiz.
Bu videoda C++ konferans ve panllerinde sık sık videolarını gördüğüm ve youtube sayfasını da uzunca bir süredir takip ettiğim Jason Turner’a ait. İsminden de anlaşılacağı üzere, Jason bu konuşmasında C++, modern C++’a ilişkin öne çıkan yeniliklerden bahsediyor (25+ adet). Bu konuşmayı bence diğerlerinden ayıran en önemli özellik bütün bu yeni özelliklerin bir bütünlük içerisinde ve birbirleri ile ilintili bir şekilde verilmesi.
Aslında bakarsanız burada geçen bir çok kabiliyete önceki yazılarımda değinmiştim ama değinmediğim bir kaç özelliğe de bu konuşmada değiniyor (…). İnşallah yakın zaman bu konulara ilişkin de sizler ile yazılar paylaşacağım.

Şimdi özellikle öne çıkan bir takım konu başlıklarını kısaca sizler ile paylaşmak istiyorum:

  • #1: const kullanımına değiniyor ve bu sadece derleyicinin bizi uyarması değil aynı zamanda semantik olarak yüklediği anlam açısından oldukça önemli
  • #2: algorithms ve STL kütüphanesi ve sunulan kabiliyetler. Halihazırda mevcut olan çözümler yerine tekerleği bir daha icat etmenin anlamı yok. Bu sebeple bunlardan haberdar olmak önemli
  • #8: Değişken sayıda parametreli şablonlar, nam-ı diğer “variadic templates”, daha önce de C++ da bulunan şablonların (“templates”), C++ 11’dan itibaren çoklu sayıda argümanı destekleyecek ve esneklik getirecek şekilde sunulan önemli bir kabiliyet. Jason, bu kabiliyete ilişkin ihtiyaç ve kullanımı çok güzel özetliyor. Biz de inşallah yakın zamanda daha yakındab akıyor oluruz 😉
  • #12: Bu sonraki bir kaç maddede ambda’ladar ve bunların değişken sayıda parametreli şablonlar ile kullanımından bahsediyor,
  • #15: Yine daha önce değindiğimiz “structured bindings” konusuna değiniyor,
  • #16: C++ 20 ile sunulan “concepts” kabiliyetine değiniyor.
  • #18: Yine C++ 20 ile sunulan metin formatlama kabiliyeti fmt kütüphanesinden bahsediyor. Bu kabiliyet ile ilgili de bir yazı sizler ile paylaşmak istiyorum.
  • #20: Aslında sunum boyunca özellikle şablonlar ve ilgili kabiliyetlere dair oldukça fazla kabiliyet var bunlardan birisi de bu sınıf şablon argüman çıkarımı.
  • #24: Eski new ile alınan nesneler için artık de facto kullanılması gereken std::unique_ptr ve std::make_unique kabiliyetleri. Bu diğer akıllı işaretçilere de daha önce oldukça detaylı değinmiştim.

Sunumun sonuna doğru C++ standartları ile sunulan bir takım çne çıkan kabiliyetler sıralanmakta. Onları da buraya alıyorum. Daha önce bunlardan değinmediklerimi biz de planımıza alalım 🙂

C++ 98:
1. C++ standardının oluşturulması
2. const
3. Deterministik nesne yaşam zamanı ve yok edilmesi
4. Şablonlar (“Templates”)
5. Algoritmalar ve STL

C++11:
1. std::array
2. Liste ilklendirmesi
3. Değişken sayıda parametreli şablonlar (“Variadic Templates”)
4. constexpr
5. auto
6. Lambdas
7. range-based for döngüleri
8. rvalue referansları
9. Varsayılan ve silinen olarak işaretlenen fonksiyonlar
10. std::unique_ptr

C++14:
1. Gevşetilmiş constexpr (ya da iyileştirilmiş)
2. Jenerik ve değişken sayıda parametreli lambda’lar
3. Normal fonksiyon dönüş tipi çıkarımı
4. std::make_unique

C++17:
1. Yapısal bağlama
2. std::string_view
3. Sınıf şablon argüman çıkarımı
4. Garanti edilmiş kopya çıkarma (Guaranteed Copy Elision)
5. “Fold Expressions”

C++20:
1. Konseptler
2. Metin formatlama
3. “Ranges”

Evet artık sunumu izleyebiliriz ne dersiniz 😉

Aşağıda, Jason’ının videosunda paylaştığı sunuma ulaşabilirsiniz.
https://github.com/CppCon/CppCon2019/blob/master/Presentations/back_to_basics_the_best_parts_of_cpp/back_to_basics_the_best_parts_of_cpp__jason_turner__cppcon_2019.pdf

Evet arkadaşlar, umarım ne izleyeceğim diye düşünürken sizlere yardımcı olacak bir video paylaşımı olmuştur. Bir sonraki yazımda görüşmek dileğiyle, kendinize çok iyi bakın, sağlıklar kalın.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.