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 に設定します。サイズに割り当てられた各整数に対して RGBHistogramFun::operator(std::size_t i) を呼び出すように std::for_each を定義しようとしています。operator() は、インデックスを使用して内部配列データを操作します。

ただし、xutility に関するコンパイラ エラーが発生します。

4

1 に答える 1

4

n3337 25.2.4

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

効果: [first,last) の範囲内のすべての反復子を逆参照 した結果に f を適用します。最初から始まり、最後 - 1 まで進みます。

intできませんdereferenced

于 2012-09-13T10:39:28.860 に答える