Из cppreference я обнаружил, что:
Шаблон класса std:: function - универсальная полиморфная функциональная оболочка. Экземпляры std:: function могут хранить, копировать и вызывать любые вызываемые целевые функции, лямбда-выражения, выражения привязки или другие функциональные объекты, а также указатели на функции-члены и указатели на элементы данных.
Я не понимаю, почему std::function
должен иметь возможность хранить такой указатель, и я никогда раньше не слышал об этой функции.
Возможно ли, я что-то пропустил или что ошибка в документации?
Как должен выглядеть operator()
в таком случае?
Как из документации:
Вызывает сохраненную целевую функцию с параметрами args.
Во всяком случае, для вызова здесь не будет сохранена вызываемая функция-функция. Я не прав?
Честно говоря, я даже не могу понять, какой правильный синтаксис для такой функции, иначе я бы написал пример, чтобы проверить его.
Как можно использовать следующий шаблон для определения указателя на элемент данных?
template< class R, class... Args >
class function<R(Args...)>