【发布时间】:2015-05-26 17:20:16
【问题描述】:
需要对从 1 到 k 的所有数字进行阶乘,并使用 boost/mpl 将它们保存在 mpl 容器中。
存储在 range_c 中的这个数字的范围。
困难在于我必须存储所有以前的值:
k! = (k-1)!*k
我以为我会将以前的值存储在 mpl::vector_c 中,即每次迭代我将从源 range_c 中获取值并将其与包含在 vector_c 中的先前值 (k-1)! 相乘,但是我在这方面有很多错误代码:
namespace mpl = boost::mpl;
const int border = 10;
using namespace mpl;
typedef
range_c <int, 1, border>
Numbers;
typedef vector_c<int, 1> data;
typedef
mpl::transform
<
Numbers,
data,
push_back<data, multiplies <_, _>>,
back_inserter
<
mpl::vector <>
>
>::type
Factorials;
【问题讨论】:
标签: c++ boost metaprogramming