0

我正在尝试定义一个函数

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 以便它为从分配到大小的每个整数调用 RGBHistogramFun::operator(std::size_t i) 。operator() 将使用索引来操作其内部数组数据。

但是,我收到关于 xutility 的编译器错误。

4

1 回答 1

4

n3337 25.2.4

template<class InputIterator, class Function>
Function for_each(InputIterator first, InputIterator last, Function f);

效果:将 f 应用于取消引用范围 [first,last) 中的每个迭代器的结果,从 first 开始,一直到 last - 1。

int不能dereferenced

于 2012-09-13T10:39:28.860 回答