Şablon Meta Programlama

Kısaca: TMP “Şablon Meta Programlama”nın İngilizce çevirisinin kısaltmasıdır. C++ Meta programlama kendini veya başka programları değiştiren veya yaratan programlar yazmaktır. Şablon meta programlar derleyici tarafından derleme zamanında çalıştırılan programlardır. ...devamı ☟

TMP “Şablon Meta Programlama”nın İngilizce çevirisinin kısaltmasıdır. C++ Meta programlama kendini veya başka programları değiştiren veya yaratan programlar yazmaktır. Şablon meta programlar derleyici tarafından derleme zamanında çalıştırılan programlardır.

Meta bilgiler

TMP türler hakkında meta bilgi tutmak için kullanılabilir. Örneğin,

template <class T>
class meta_bilgi
{
static const bool tam_sayı_mı=false;
}


özelleşmemiş bir şablon tanımlar.

Bu şablonun int için özelleşmiş şekli
class meta_bilgi<int>
{
static const bool tam_sayı_mı=true;
}
programcı tarafından int türü için derleme öncesinden bilgi almak için kullanılabilir.

Meta işlevler

TMP sabit değerlerin hesaplamak ve basit şablon meta işlevler yazmak için kullanılabilir.

Değer hesaplama



Örneğin,
const double PI=3.1415;
const double PI_KARE = PI * PI;
sabit değer hesaplayan bir meta programdır.

Basit meta işlevler



Meta işlevler derleme zamanında basit işlemler yapmak için kullanılabilir. Örneğin aşağıdaki program iki sayının ortak bölenlerinin en büyüğüü (OBEB) derleme zamanında hesaplar.

 template 
 class GCD
 {
   public:
     enum{
       RET = GCD::RET
   };
 };


 template
 class GCD
 {
   public:
     enum {
       RET = x
   };
 };


 int main()
 {
   int x  ;
   std::cout << sizeof(x) << std::endl;
   return 0;
 } 


Dış bağlantılar

  • ISBN 0321227255


Kaynaklar

Vikipedi

Bu konuda henüz görüş yok.
Görüş/mesaj gerekli.
Markdown kullanılabilir.