Я хотел бы обернуть результат std::bind() или лямбда во вспомогательную функцию, которая отслеживает время выполнения вызовов функции. Мне нужно обобщенное решение, которое будет работать с любым количеством параметров (и методов класса) и совместимо с С++ 11.
Мое намерение состоит в том, чтобы взять обернутую функцию и передать ее в boost::signals2::signal, поэтому результирующий объект функции должен быть идентичен по сигнатуре исходной функции.
В основном я ищу какой-то волшебный класс или функцию Wrapper
, которая работает следующим образом:
std::function<void(int)> f = [](int x) {
std::cerr << x << std::endl;
};
boost::signals2::signal<void(int)> x_signal;
x_signal.connect(Wrapper<void(int)>(f));
x_signal(42);
это время, сколько времени потребовалось, чтобы напечатать 42.
Спасибо!
void
! - person sehe   schedule 26.01.2016