Реализуйте безоперационный функтор используя boost :: bind - PullRequest
1 голос
/ 24 октября 2011

У меня есть функция void get(boost::function<void(void)> callback) { callback(); }.Я хочу сделать вызов как get(boost::bind(/* don't know what to put here*/)); без реализации каких-либо других функций, переменных или структур, так что обратный вызов ничего не делает.Возможно ли реализовать такой обратный вызов "no-op" в C ++ 03 ?

Использование boost::bind() является предпочтительным, но не обязательным - может быть, есть некоторые другие приемыдостичь моей цели.

1 Ответ

4 голосов
/ 24 октября 2011

Вы можете использовать что-то вроде boost::bind(std::plus<int>(), 0, 0), которое должно быть оптимизировано до нуля.

Это сделало бы код более понятным, если бы вы ослабили свое ограничение и вместо этого определили неактивный функтор.

...