std :: for_each Использование на функцию члена с двумя args

Вот общее представление о том, как мой класс определяется как (он выполняет другие операции, чем то, что упоминается ниже)

struct Funktor
{
    Funktor(int val):m_val(val){}
    bool operator()(int arg1, int arg2) { return m_val==arg1*arg2; }
    int m_val;
};

И теперь у меня есть вектор вышеперечисленных объектов, и я пытаюсь позвонить оператору (), используя for_each, есть ли способ сделать это? Я знаю, что это можно сделать с помощью bind2nd и mem_func_ref, но когда есть только один аргумент но для двух аргументов, которые я не нашел способ.

int main()
{
    std::vector<Funktor> funktors;
    funktors.push_back(Funktor(10));
    funktors.push_back(Funktor(20));
    funktors.push_back(Funktor(30));

    int arg1 = 5, arg2 = 6;
    //instead of the for loop below I want to use for_each
    for(std::vector<Funktor>::iterator itr = funktors.begin(); funktors.end() != itr; ++itr)
    {
        (*itr)(arg1,arg2);
   }
}

Спасибо за любую помощь. Best.

CV

5
задан blueskin 12 September 2011 в 19:54
поделиться