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;
}
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;
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