Передать метод класса в качестве параметра

Не получается передать метод класса в качестве параметра.

Пример кода

class Cont
{
public:

    void add(int a)
    {
        m_vect.push_back(a);
    }

    template <class ModuleType>
    void map(ModuleType *module, void (ModuleType::*mapMethod)(int a))
    {
        for (int i = 0; i < m_vect.size(); i++)
            (module->*mapMethod)(m_vect[i]);
    }

private:

    std::vector<int> m_vect;

};

class Oper
{
public: 
    void mapMethod1(int a)
    {
        std::cout << a << std::endl;
    }

    void exec()
    {
        Cont cont;
        cont.add(1);
        cont.add(3);
        cont.add(4);

        cont.map<Oper>(this, mapMethod1); // **ошибка компиляции**
    }
};

int main()
{
    Oper oper;
    oper.exec();

    return 0;
}

Ответы (2 шт):

Автор решения: Harry

Так устроит?

cont.map<Oper>(this, &Oper::mapMethod1); 

Вот полный код: https://ideone.com/DjiFoO

→ Ссылка
Автор решения: user7860670

Синтаксис для получения указателя на нестатическую функцию выглядит как &ClassName::MethodName. При чем в данном случае тип объекта может быть выведен из аргументов и можно не задавать его явно:

 cont.map(this, &Oper::mapMethod1);
→ Ссылка