şablon sabit parametreleri – 1 (template non-type parameters)

Şablon sabit parametrelerine (template non-type parameters) ilişkin ilginç bir özellik var: Bir şablon sabit parametresi, bir şablon tür parametresi (type parameter) türünden olabiliyor. Biraz karmaşık gibi görünse de cümlede bir hata yok. Aşağıdaki koda bakalım:

Yukarıdaki kodda A isimli sınıf şablonunda birinci şablon (tür) parametresine T ismi verilmiş. İkinci şablon parametresi is T türünden bir sabit. Eğer derleme zamanında T türü olarak örneğin int türü alınırsa val de derleyici tarafından int türden bir sabit olarak ele alınacak. Şablon sabit parametrelerinin tamsayı türlerinden olması gerektiğini hatırlayalım.  Eğer A sınıf şablonu için birinci şablon tür argümanı olarak bir tamsayı türü belirlenmez ise sentaks hatası oluşacak:

Şablon sabit parametrelerine ilişkin bu özellik standart type_traits kütüphanesinde etkin olarak kullanılıyor. type_traits kütüphanesindeki integral_constant sınıf şablonuna bakalım:

Standart integral_constant sınıfının sözünü ettiğimiz yapıda olduğunu görüyorsunuz. std isim alanı içinde ayrıca aşağıdaki typedef bildirimleri yer alıyor:

Şablon tür argümanı olarak bool türü alındığında şablon tür parametresi de bool türünden bir sabit oluyor.

Share

Necati Ergin

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

Bunlar da ilginizi çekebilir

Kod Eklemek İçin Okuyun