0
这里是我的代码。只是试图围绕你可以用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;
}
谢谢。在迄今为止我所见过的所有内容中,没有一个像这种特殊情况下的模板限制那样。甚至没有发生在我身上,bleh – Justen 2010-04-14 18:48:37
哦,我注意到了,我把sum = 0改为sum = e。 – Justen 2010-04-14 18:50:11