Programowanie generyczne tablica factorial

0

Witam
Ostatnio bawię się programowaniem generycznym. Za pomocą tego cudeńka można obliczyć silnie(N)

template <int N>
	struct factorial
	{
		static const int value =	N * factorial <N - 1>:: value ;
	};

Może wiecie czy można jakoś automatycznie wygenerować tablicę N uzupełnioną z kolejnymi wartościami silni??

0

dorzuc do struct factorial metode w stylu:

public: static void fill_downwards (int* target)
{
*target = value;
factorial<N-1>::fill_downwards(target+1);
}

uzycie:

const int MAX = 5;
int tab[MAX];
factorial<MAX>::fill_downwards(tab); => tab == {120, 24,6,2,1}

zwroc uwage, ze skoro stosujesz metaprogramowanie, MAX musi byc stałą znaną w czasie kompilacji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1