int func(int x){return x;}
...
std::function<int(int)> x = std::bind(func, std::placeholders::_1);
x(123);
- Действительно ли
x(123)
вызываетoperator()
функтора, сгенерированногоstd::function
, который в свою очередь вызываетoperator()
функтора, которыйstd::bind
генерирует, который в конечном итоге вызываетfunc
? Оптимизируется ли это в чем-то оптимальном, чем вызовfunc(123)
? - Где живет функтор, который
std::bind
генерирует? В каком объеме? И какstd::bind
назовите его? (возможны конфликты имен) - Может ли lambdas заменить все использования
std::bind
? - Является ли
std::bind
оптимальным, чем реализация вместо lambda? - Что связано с синтаксисом аргумента шаблона
std::function
? Как это анализируется и как я могу использовать синтаксис аргумента шаблона в другом месте?