[C++20] std::ranges ile Client kaynak kodunu güncelleyin

  • Konuyu açan Konuyu açan Kaptan Yosun
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 2
  • Gösterim Gösterim 593

Kaptan Yosun

Co-Co Admin
Moderatör
Geliştirici
Yardımsever Üye
Usta Üye
Mesaj
1.540
Çözümler
56
Beğeni
2.932
Puan
1.839
Ticaret Puanı
0
:mmt-hakkinda:
Metin2'nin antik kodunu yavaş yavaş güncelleyelim. Bugünkü işimiz C++20 ile gelen std::ranges fonksiyonları.
  • Daha temiz ve okunaklı kod
  • Daha güçlü tip güvenliği ve daha iyi derleyici hataları
  • Sıra tabanlı (range-based) yapılarla doğal uyum
  • Iterator kullanımını ortadan kaldırarak hata riskini azaltır
  • Daha az hata yapma olasılığı — örneğin yanlış aralık sınırları
  • Alt dizi, filtreleme, dönüştürme gibi işlemleri kolaylaştırır
Bu gibi bazı fayfaları var.
Metin2 kodunda kullanımı oldukça basit, örnek:

C++:
Genişlet Daralt Kopyala
/* Eski */
std::for_each (m_ParticleInstanceVector.begin(), m_ParticleInstanceVector.end(), std::mem_fn (&CEffectElementBaseInstance::Render));

/* Yeni */
std::ranges::for_each (m_ParticleInstanceVector, std::mem_fn (&CEffectElementBaseInstance::Render));

Manuel olarak begin ve end noktalarını belirtmenize gerek kalmıyor.

Gelelim nasıl yapılacağına. Aşağıdaki std_ranges.diff dosyasını 'ye yükleyip, gerekli satırları kendi projenizin kaynak kodu içinde düzenlemelisiniz.

Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.

 
Uyarı: Bu konu açıldığından bu yana baya zaman geçmiş.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.
Geri
Üst