模板递归方式数字求和:
#include <iostream>
using namespace std;
template<int... Last> class Sum;
template <int First, int... Last>
class Sum<First, Last...> {
public:
enum { value = First + Sum<Last...>::value};
};
template <>
class Sum<> {
public:
enum {value = 0};
};
int main()
{
int sum = Sum<3, 4, 5>::value;
cout << "sum = " << sum << endl;
return 0;
}