Basit bir kodumuz olsun.
Bu kodda branch işlemi for döngüsünün başında neyse, sonunda da aynı yani sayaç içinde değişmiyor.
Dolayısıyla bu kodda gereksiz yere if işlemi her döngüde tekrar hesaplanıyor.
Compiler böyle basit bir kodu optimize edebiliyormuş, yaptığı işlem de if ile for'un yerini değiştirmek.
Ancak daha karmaşık, içerisinde 10 adet if işlemi olan bir kodda, (yine bütün if işlemleri sayaç içerisinde değişmiyor yani sabitse) compiler otomatik optimize edemiyor ve kendimiz if'leri başa alıp 10 adet for ürettiğimizde yazacağımız 100 satırlık kod, bir anda 1000 satıra ulaşıyor ve sonradan birşeyler ekleyip çıkarmak zor hale geliyor çünkü aynı fonksiyonun 10 farklı kombinasyonu için tekrar kontrol etmek gerekiyor.
Sorum şu ki nesne yönelimli programlamanın en iyi uygulandığı C++ içerisinde bunun en güzel ve temiz çözümü nedir ?
for(sayaç)
{
if(branch)
process
}
Bu kodda branch işlemi for döngüsünün başında neyse, sonunda da aynı yani sayaç içinde değişmiyor.
Dolayısıyla bu kodda gereksiz yere if işlemi her döngüde tekrar hesaplanıyor.
Compiler böyle basit bir kodu optimize edebiliyormuş, yaptığı işlem de if ile for'un yerini değiştirmek.
Ancak daha karmaşık, içerisinde 10 adet if işlemi olan bir kodda, (yine bütün if işlemleri sayaç içerisinde değişmiyor yani sabitse) compiler otomatik optimize edemiyor ve kendimiz if'leri başa alıp 10 adet for ürettiğimizde yazacağımız 100 satırlık kod, bir anda 1000 satıra ulaşıyor ve sonradan birşeyler ekleyip çıkarmak zor hale geliyor çünkü aynı fonksiyonun 10 farklı kombinasyonu için tekrar kontrol etmek gerekiyor.
Sorum şu ki nesne yönelimli programlamanın en iyi uygulandığı C++ içerisinde bunun en güzel ve temiz çözümü nedir ?