Как я могу отключить новую ветку / сообщения, вышедшие из цепочки в GDB?

Нестатическую функцию-член нужно вызывать с объектом. То есть он всегда неявно передает «этот» указатель в качестве своего аргумента.

Поскольку ваша подпись std::function указывает, что ваша функция не принимает никаких аргументов (<void(void)>), вы должны bind первый (и единственный) аргумент.

std::function<void(void)> f = std::bind(&Foo::doSomething, this);

Если вы хотите связать функцию с параметрами, вам нужно указать заполнители:

using namespace std::placeholders;
std::function<void(int,int)> f = std::bind(&Foo::doSomethingArgs, this, _1, _2);

Или , если ваш компилятор поддерживает C ++ 11 lambdas:

std::function<void(int,int)> f = [=](int a, int b) {
    this->doSomethingArgs(a, b);
}

(у меня нет компилятора C ++ 11 под рукой прямо сейчас , поэтому я могу " t проверить это.)

63
задан Raedwald 13 September 2018 в 13:24
поделиться