【发布时间】:2014-05-23 20:57:07
【问题描述】:
我编写了以下元编程模板:
template <unsigned int N, unsigned int P>
struct cutom_imagined
{
static unsigned int function(unsigned int r)
{
return (P + N + r) * cutom_imagined<N - 1>::function(r);
}
};
P 实际上就像一个常数。我应该如何为上面的例子编写最后一次递归?我想它应该和这个类似:
template <>
struct cutom_imagined<0, /* What should be here? */ >
{
static unsigned int function(unsigned int) { return 1; }
};
可是不知道怎么写……
【问题讨论】:
-
P长什么样子?
-
只是想象的参数。当模板中有两个(或更多)参数时,我很好奇如何在元编程中编写最后一次递归。
标签: c++ templates recursion metaprogramming template-meta-programming