template ??? gcd(T1 a, T2 b){ static_assert(std::is_integral::value, "T1 should be an integral type!"); static_assert(std::is_integral::value, "T2 should be an integral type!"); if( b == 0 ){ return a; } else{ return gcd(b, a % b); } }