Visual C++ функции и проблемы связывания

У меня есть класс, который работает с файлами, конструктор получает функцию std:: для отправки статуса работы в библиотеку GUI, если она используется.

Декларация:

DASM(std::string filename, std::function<void(unsigned int, unsigned int)> f = nullptr);

в определении я написал:

if(f!=nullptr)
  f(i,decodedInstructionsCount);

Мой LoadWindow имеет следующую функцию:

std::function<void(unsigned int,unsigned int)> get_f()
    {
        std::function<void(unsigned int,unsigned int)> ret = std::bind(&LoadWindow::pb_next,_2,_1);
        return ret;
    }

и пустое LoadWindow::pb_next выглядит так:

void LoadWindow::pb_next(unsigned int now, unsigned int max)
{
    this->m_progressbar.set_fraction(((double)now/(double)max));
}

VC++ говорит:

ошибка C2064: выражение не разрешается в функции, которая принимает 2 аргумента.

У меня немецкий VS, поэтому я перевел ошибку.

Спасибо за помощь

0 ответов

Другие вопросы по тегам