• c++* da bir sınıfa* veya fonksiyona* eğer farklı farklı veri tipleri gönderilecekse ama yapılacak iş hep aynı halt ise, her veri tipi için ayrı ayrı mal gibi aynı şeyleri yazmak yerine; kodu yazmadan önce template <class type> ekleyerek derleyiciye* "baba ben sana bişiler yollucam ama veri tipi keyfime göre değişecek, ona göre sen type gördüğün yerlerde şimdilik veri tipi kontrolü yapma duruma göre beni idare et, gerekirse çalışırken ortamlara ak tamam mı hocam" demektir. iyidir kolaydır. c de mal gibi teker teker yazdığınız günlere ağlarsınız öğrenince. yine de zararın neresinden dönülürse kârdır.
  • javada 1.5 versiyonundan itibaren generics adi ile var olan kavram.
  • c++'daki jenerik programlama özelliğidir. jenerik programlama basitçe veri tipinin(int, string...) algoritmada sonradan belirlenmesidir. basit bir örnek vereyim girdiğimiz değeri yazdıran bir fonksiyon yazacağız ama tam sayı ve kesirli sayı için ayrı fonksiyon yazmak istemiyoruz. o zaman template kullanabiliriz.
    sadece intveri tipi için yazarsak fonksiyonu:
    void yazdir(int sayi)
    {
    std::cout<< sayi<<std::endl;
    }
    template kullanarak farklı değişkenler için de kullanabilir fonksiyonu:
    // x(başka bir şey de diyebilirsiniz t,y,z fark etmez veri tipini alan değişken.
    template<typename x>
    void yazdir(x sayi)
    {
    std::cout<< sayi<<std::endl;
    }
    main'de kullanmak için bu fonkisyonu şöyle çağırıyoruz:
    yazdir(5.5); // 5.5 yazacak
    yazdir(5); // 5 yazacak

    yukardaki tartışmaya istinaden bir şeyler ekleyecek olursam java'da veri tipi compile-time'da kontrol edilir. yani tür bilgisi compile zamanında doğrulanır, derlenen koda dahil değildir. (bkz: type erasure)compile edilirken java'da sınıf ve tip bilgileri silinip raw type'e dönüştürülür. tür silmeden dolayı jenerik yazdığınız kod mesela "catch ( genericexception < tamsayı > e ), catch ( genericexception < string > e )" hangi bloğun çalışacağını run-time sırasında bilemeyecektir çünkü java, c++'tan farklı olarak derlenirken type erasure yapıyor.
  • .tpl uzantısını hak eder.
  • şablon
  • dotnet 1.2 versiyonunda geçen ve özellikle collectionlar üzerinde uygulanan reuse teknolojisi. önceden bu işler için array, arraylist kullanılırdı ama bu arkadaşlardan gül olanı arraylist object tipi aldığından sürekli bişeyleri cast etmek gibi bir dikeni vardı.

    buna göre gayette şöyle bişey yazılabilir;

    list<int> osmaninlistesi = new list<int>();
    osmaninlistesi.add( 3 );

    int nuri = osmaninlistesi[0];

    naaptık şimdi listeye 3 rakamını ekledik cast etmeden de geri aldık.
    olay template metodlarla devam edebilir -ki o kısımda aslında aynı mantıktadır-

    bu teknoloji ayriyetten microsoftun bulduğu süper bir fikir değildir, c++ üstünde zaten bu vardı ancak c++'nin angut syntax'i (dikkat c degil c++) yüzünden pek kimse kullanmaya cesaret edemez. c++ ile karşılaştırıldığında doğal olarak zaman farkı vardır ve dotnet'in biraz daha esnek ve kullanılabilir olduğu söylenebilir.

    dotnetin sonraki sürümlerinde polyphonic die bir özellik gelecek ( adı muhtemelen polyphonic csharp olacak) ve ne işe yaradığını ben daha tam çözebilmiş değilim.
  • (bkz: şablon)
  • başını boostun çektiği hemen hemen her doğru dürüst c++ kütüphanesinin yazıldığı yapı. çoğu zaman oldukça pratik sonuçlar çıkaran ancak tam olarak oop mantığıyla uyuşmaması nedeniyle benim biraz soğuk baktığım yapıdır ayrıca.
    http://www.parashift.com/… -faq-lite/templates.html
hesabın var mı? giriş yap