şablon eş isimleri

Diyelim ki projemizde oluşturacağımız kap nesneleri için kullanmak zorunda olduğumuz bir yer ayırıcı (allocator) sınıf şablonumuz var ve standart map kaplarını aynı türden anahtar, değer çiftleri oluşturmak üzere, kendi yer ayırıcı sınıfımızla kullanmak istiyoruz:

mymap nesnesini tanımlamamız bayağı bir zahmetli oldu, değil mi? C++11 ie birlikte şablonlara bir tür parametresine bağlı olarak eş isim (alias) verebiliyoruz. Kullanılan bu yapıya ingilizcede template alias deniyor:

Artık xmap eş isim şablonunun görünür olduğu her yerde, T türü yerine xmap ismini izleyen açısal parantezin içine yazdığımız tür bilgisi kullanılacak.
Şimdi  aşağıdaki kodların her birinde x nesnesinin tanımını şablon eş isim bildirimi olmadan yapmaya çalışın:

yanıt : int **x;

yanıt : std::tuple<int, int, int, int, int> x;

yanıt: int *(*x)(double);

yanıt: std::pair<std::set<double, std::greater<double>, Alloc<double>>, std::set<double, std::less<double>, Alloc<double>>> x;

Necati Ergin

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

Bunlar da ilginizi çekebilir

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Kod Eklemek İçin Okuyun