我试图定义一个函数
template<typename Functor> static void start(DataSize size, ThreadNum threadNum, Functor f)
{
....
std::for_each<int>(allocated, size, f);
....
}
已分配和大小只是int。
来电者调用该功能
start(image.width() * image.height(), _threads, RGBHistogramFun<T>(image, hist));
和
template<typename T> class RGBHistogramFun
{
...
void operator()(std::size_t i)
{
....
}
}
我将T设置为模板的int。我试图定义std :: for_each,以便为分配给size的每个整数调用RGBHistogramFun :: operator(std :: size_t i)。 operator()将使用索引来操作其内部数组数据。
但是,我的编译器错误是关于xutility的。
答案 0 :(得分:3)
n3337 25.2.4
template<class InputIterator, class Function>
Function for_each(InputIterator first, InputIterator last, Function f);
效果:将f应用于[first,last]范围内的解除引用每个迭代器的结果,开始 从第一个开始到最后一个 - 1。
int
不能是dereferenced
。