29 Mart 2010 Pazartesi

C++'da "const" olarak tanımlanmış ifadeleri etkisizleştirme...

Baya karmaşık bir başlık oldu, neyse oldukça basit bir mevzu biraz inceleyince hemen anlaşılıyor. O yüzden okumaya devam edin. Üniversite kütüphanesinde Game Developers dergisinin Mart sayısını kurcalarken kodlama örnekleri bölümünde C++'da const olarak tanımlanmış ifadeleri etkisizleştirme üzerine bir yazı gördüm. Anlatılana göre geliştirici ekip başka bir ekipten hayli büyük miktarda kod almış. Bu yeni ekip güvenli kod yazmaya biraz fazla meraklı olduğundan kodun her tarafı "const" olarak tanımlanmış ifadelerle doluymuş. Bizim geliştirici ekip bu "const" ifadelerle boğuşup sürekli derleme hataları almaktan yorulunca çareyi yazının konusu olan hileyi yaparak bulmuşlar.

"const" tanımlı ifadelerin bela olduğu kod bloğunun başına "#define const" yazarak "const" 'u hiç olarak tanımlamışlar, yani "const"'u etkisizleştirmişler, böylelikle derleyici hatalarından bu ufak hile sayesinde kurtulmuşlar.

Yazı derginin dirty hacks bölümündeydi, o yüzden her zaman başvurulması gereken bir yöntem değil ama uygulaması çok basit. "const"'larla çok fena kavgalı olmuşsanız bu çözüm tam size göre.