std::function хранит любой вызываемый объект с заданным типом результата и списком аргументов. Достаточно указать сигнатуру в угловых скобках.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpCbFn 450 of 696 menu
◀ ▶

Обертка std::function в C++

Шаблон std::function хранит любой вызываемый объект с заданным типом результата и списком аргументов.

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

#include <functional> #include <iostream> int bump(int value) { return value + 1; } int main() { std::function<int(int)> fn = bump; std::cout << fn(4) << "\n"; return 0; }

Реализуйте int square(int). Запишите ее в std::function<int(int)> с именем work и выведите результат для 5.

Объявите void note(int), печатающую аргумент. Обертка std::function<void(int)> должна сначала держать bump из примера, затем note; выведите два вызова подряд для 0.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить