ich diesen Arbeits Code in einem Buch auf Metaprogrammierung gefunden -Beschreiben Sie den Speicherverbrauch dieser Metaprogramm
template<unsigned long N>
struct binary
{
static unsigned const value = binary<N/10>::value *2 + N%10;
};
template<>
struct binary<0>
{
static unsigned const value = 0;
};
int main()
{
unsigned x = binary<101010>::value;
cout << x;
}
Meine Frage ist - wo ist der Speicher für value
zugewiesen? Ist es auf dem Datensegment zugeordnet?
Das Buch sagt auch, dass dieser Code zu einer Kaskade von Template-Instanziierungen führt, die das Ergebnis ähnlich wie Rekursion berechnen. Bedeutet dies, dass für jede Template-Instanziierung ein neues unsigned
auf dem Datensegment zugewiesen wird?