[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 378

Kaptan Yosun

Moderatör
Moderatör
Geliştirici
Yardımsever Üye
Mesaj
1.427
Çözümler
53
Beğeni
2.214
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.

 
Geri
Üst