我需要优化BlkSize_
stxxl 向量的块大小参数,以便使用简单的网格搜索来查找部分和。由于为 stxxl 向量指定它的唯一方法似乎是将其用作向量生成器中的模板参数,我知道我想使用一些递归模板函数,该函数将在给定块大小模板参数的情况下输出 partial_sum 函数使用的时间。我还需要携带矢量大小作为参数。
这是我的代码:
template<unsigned int size>
void TestPartialSum(int N) {
typedef stxxl::VECTOR_GENERATOR<
int,
1,
1,
size,
stxxl::RC,
stxxl::lru>::result xxlvector;
xxlvector v(N);
xxlvector res(N);
iota(v.begin(), v.end(), 5, 2);
std::cerr << "N = " << N << std::endl;
Profiler profiler;
std::partial_sum(v.begin(), v.end(), res.begin());
TestPartialSum<size / 2>(N);
return;
}
但是虽然struct stxxl::VECTOR_GENERATOR
正好需要 6 个参数 ( class Tp_, unsigned int PgSz_, unsigned int Pages_, unsigned int BlkSize_, class AllocStr_, stxxl::pager_type Pager_
),但我收到了这个:
error: too few template-parameter-lists
为一条typedef
线。
可能是什么问题呢?