C++ çalışma sorusu – 54 (expression sfinae)

Aşağıda yer alan kodda, bir sınıfın begin isimli bir üye işleve  sahip olup olmadığını “expression sfinae” tekniği ile sınayan has_member_begin isimli bir sınıf şablonu yer alıyor:

a) Öncelikle yukarıdaki kodu inceleyerek anlamaya çalışın.
b) Aşağıdaki parametrik yapıda bir işlev şablonu yazacaksınız:

has_member_begin isimli trait sınıfından faydalanarak func işlev şablonundan yalnızca begin isimli bir üye işleve sahip T türleri için işlevler üretilmesini sağlamanız gerekiyor. Eğer T türü begin isimli bir işleve sahip değil ise yazacağınız func işlev şablonunun işlev yükleme çözümlemesine (function overload resolution) katılmaması gerekiyor. SFINAE tekniklerinden birini kullanarak func işlev şablonunu gerçekleştirin.
Yazdığınız şablonu farklı türler için test edin.

Share

Necati Ergin

C ve Sistem Programcıları Derneğinde eğitmen olarak çalışıyor.

Bunlar da ilginizi çekebilir

Kod Eklemek İçin Okuyun