Re[34]: Вопрос к Vlad2: Nemerle & R#
От: Kluev  
Дата: 27.03.06 17:28
Оценка: :)
Здравствуйте, eao197, Вы писали:

E>Да, действительно. Но это легко исправляется. Код даже меньше получится:

E>

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

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


E>Но вообще я согласен с Oyster, что сложные compile-time вычисления (если все типы заранее известны) на Nemerle могут выглядеть проще, чем на C++.


compile-time вычисления — это редкость.
А вот рантайм факториал я бы написал так:

extern const double precomputed_factorials[];

inline double factorial(int n)
{
   if ( n < precomp_factorial_max ) // берем готовый из таблицы
      return precomputed_factorials[n];

   // вычисляем по необходимости
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.