17#ifndef __math_factorial_h__
18#define __math_factorial_h__
33 }
else if (i == std::numeric_limits<T>::max()) {
36 const T multiplier = factorial<T>(i-1);
37 const T result = i * multiplier;
38 if (result / multiplier == i)
41 return std::numeric_limits<T>::max();