Salut à tous,
C++20 apporte les concepts, mais par pure nostalgie, regardons comment émuler ça en C++11
#include <utility>
#define REQUIRES(x) class _ = decltype(x)
template<class T,
REQUIRES(((std::declval<T>()==0), T(1), std::declval<T>() * (std::declval<T>() -1)))>
T fact(T const& n) {
return n == 0
(…)