TGViewer
Программирование {BookFlow} Программирование {BookFlow} @bookflow · 15.6K subscribers
Post #3789 1.47K
🔥 Разбираемся с std::invoke в C++ 🔥

Сегодня разберём мощный инструмент из стандартной библиотеки — std::invoke. Многие его игнорируют, но он может упростить вызов функций и методов, особенно в шаблонном коде.

📌 Что такое std::invoke?
std::invoke — это универсальный механизм вызова вызываемых объектов (callable). Он может вызывать:
✅ Обычные функции
✅ Лямбды
✅ Функторы
✅ Указатели на методы и данные

🔹 Пример использования:


#include <iostream>
#include <functional>

struct Foo {
void method(int x) {
std::cout << "Method called with " << x << '\n';
}
};

void function(int x) {
std::cout << "Function called with " << x << '\n';
}

int main() {
Foo foo;

// Вызов обычной функции
std::invoke(function, 42);

// Вызов метода класса через объект
std::invoke(&Foo::method, foo, 24);

// Вызов метода через указатель на объект
Foo* ptr = &foo;
std::invoke(&Foo::method, ptr, 77);

return 0;
}


🔥 Чем std::invoke полезен?
✅ Универсальность: избавляет от необходимости писать отдельные if constexpr для разных callable объектов.
✅ Чистый код: особенно полезен в шаблонных алгоритмах, где callable передаётся как параметр.

👉 @Bookflow
  • 👍 5
More from @bookflow
  1. Oct 13, 2026Полезные команды PowerShell для работы с сетью 1. Проверка сетевого подключения (аналог ко…
  2. Oct 5, 2026🖼 Из картинки - в 3D-сцену со звуком: image-blaster Загружаешь изображение, запускаешь Cl…
  3. Oct 2, 2026xdg-ninja — это полезный инструмент для программистов и пользователей Linux, который помог…
  4. Sep 29, 2026🔐 Путеводитель по аутентификации: от Cookies до OAuth 2.0 Разбираться в способах входа по…
  5. Sep 24, 2026Работа с HTTP API (на практике) Подготовил мини-серию из пары десятков практических задани…
  6. Sep 22, 2026🔎 Kor — найти забытые ресурсы в Kubernetes После экспериментов и релизов в кластере остаю…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →