std::invoke из единым способом вызывает функции, функторы, указатели на функцию и указатели на метод.">
⊗cpSpCbIv 449 of 696 menu

Вызов через std::invoke в C++

Функция std::invoke из <functional> единым способом вызывает функции, функторы, указатели на функцию и указатели на метод.

Для указателя на метод в аргументах передают сам указатель на член и объект, у которого вызывают метод. Подключим заголовок, зададим класс и выполним один вызов:

#include <functional> #include <iostream> struct Box { int size = 0; void report() { std::cout << size << "\n"; } }; int main() { Box obj{9}; void (Box::*mp)() = &Box::report; std::invoke(mp, obj); return 0; }

В struct Node объявите метод void tick(), печатающий 1. Вызовите его через std::invoke с указателем void (Node::*fn)() и объектом Node.

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