SORU
31 Ocak 2009, CUMARTESİ


Şablon&; imzasız int N lt> ne anlama geliyor?

Bir şablon bildirirken, bu kod biraz alışkın olduğum:

template <class T>

Ama kullandıkları in this question,:

template <unsigned int N>

Derler ki kontrol ettim. Ama ne anlama geliyor? Olmayan bir tür parametresi mi? Ve eğer öyleyse, ne tür herhangi bir parametre olmadan bir şablon alabilir miyiz?

CEVAP
31 Ocak 2009, CUMARTESİ


Gayet olası bir tamsayı bir sınıf yerine bir tür şablon. Bir değişken için şablonu esas alan değer atamak, ya da başka bir tamsayı hazır bilgi ile olabileceğimiz bir şekilde manipüle edebiliriz:

unsigned int x = N;

Aslında, zaman (Wikipedia) derleme değerlendiren algoritmalar oluşturabilirsiniz:

template <int N>
struct Factorial 
{
     enum { value = N * Factorial<N - 1>::value };
};

template <>
struct Factorial<0> 
{
    enum { value = 1 };
};

// Factorial<4>::value == 24
// Factorial<0>::value == 1
void foo()
{
    int x = Factorial<4>::value; // == 24
    int y = Factorial<0>::value; // == 1
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Absolute Zero(Programming Tutorials)

    Absolute Zer

    22 Kasım 2012
  • Ricardo Cerqueira

    Ricardo Cerq

    28 Mayıs 2008
  • TotalxLuna

    TotalxLuna

    27 Kasım 2011