Modern C++ (2): C++ 11 Yenilikleri

İlk yazımdan bu yana neredeyse üç sene geçmiş ve gelen geri bildirimler ışığında modern C++ yazılarıma geri dönmeyi planlıyorum. Öncelikle değerli geri bildirimleriniz için çok teşekkürler. Bunlar yeni yazılarım için de, güzel bir motivasyon kaynağı. İlk sitemi kurduğumdan beri en önemli amacım, bildiklerimi ve öğrendiklerimi, kendime has dilimle sizlerle paylaşmak. Şimdiye kadar da bunun faydalı olduğunu gördüm, görüyorum ve devam edeceğim inşallah.

Peki neden bu yazıyı tekrar hortlattım 🙂 aşağıda aslında o zaman C++ 11 ile başlayan serüvenimizde, önümüze bir yol haritası koymuştuk. Bunlardan hangilerini işledik, hangiler kaldı. Aşağıda, işlediğim konulara ilişkin yazı bağlantılarını ekledim ve kırmızı ile renklendirdim. Aslında baya bir kabiliyete bakmışız 🙂 Kalanlardan da, variadic templatesattributes, user-defined literals, std::array ve hepsinden önemlisi std::chrono konularına değineceğim.

Artık hızlıca, C++ 11 ve diğer standartlara ilişkin kabiliyetlere bakıp, C++ 14/17 ve 20’e kaldığımız yerden devam edebiliriz. Bunlara ilişkin de ayrı bir sayfa yapıp, aşağıdaki gibi yazıları yayınladıkça, tablodan verilebilir. Bu konuda da geri bildirimlerinizi bekliyorum.

Elbette bu sırada diğer yazılarıma da devam edeceğim (Godot, QT/QML, videolar), hatta son zamanlarda vakit buldukça baktığım bazı gömülü yazılımlara dair de paylaşımlarda bulunmayı planlıyorum. 

Yazılımlarımda parça parça anlatacağım (muhtemelen hepsine giremeyeceğim ama olabildiğince kısaca da olsa anlatmaya çalışacağım) dile gelen yeniliklerin hepsini bir arada görmek isterseniz ISO/IEC 14882:2003 standardına başvurabileceğiniz gibi aşağıdaki listeye de bakabilirsiniz 🙂 Aşağıdaki  kabiliyetlerden anlattıklarıma bağlantıları ekleyeceğim (Yeşil ile renklendirdiklerim eklenenler).

C++ 11 Yeni Dil Özellikleri:

  1. Move semantiği
  2. Variadic templates
  3. rvalue referansları
  4. Initializer lists
  5. Static assertions
  6. auto
  7. Lambda tanımlamaları
  8. decltype
  9. Template aliases
  10. nullptr
  11. Strongly-typed enums
  12. Attributes
  13. constexpr
  14. Delegating constructors
  15. User-defined literals
  16. explicit virtual overrides
  17. final specifier
  18. default functions
  19. deleted functions
  20. Range-based for loops
  21. Special member functions for move semantics
  22. Converting constructors
  23. Explicit conversion functions
  24. Inline-namespaces
  25. Non-static data member initializers
  26. Right angle brackets

C++ 11 STL Kütüphanesi Yeni Özellikleri/Sınıfları:

  1. std::move
  2. std::forward
  3. std::to_string
  4. type traits
  5. smart pointers
  6. std::chrono
  7. std::tuples
  8. std::tie
  9. std::array
  10. unordered containers
  11. std::make_shared
  12. memory model

Bir cevap yazın

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.