Вот мой код. Просто пытаюсь обернуть голову вокруг некоторых основных вещей, которые вы можете сделать с TMP. Я пытаюсь предоставить два числа, с которыми компилятор сложит этот диапазон чисел. Я просто не уверен, как написать синтаксис для шаблона «ограничение».
template < int b, int e >
struct add {
enum { sum = add< b + 1, e >::sum + b };
};
template <>
struct add< e, e > {
enum { sum = 0 };
};
int main() {
cout << add< 4, 8 >::sum << endl; //30
return 0;
}