Something went wrong. Try again.
A Tour of C++ for experienced programmers, as if C++26 is the only version that ever existed.
Something went wrong. Try again.
123456789101112131415161718192021222324252627#include <iostream>#include <functional>#include <string>
struct Obj { int value = 42; int get() const { return value; } int data = 99;};
int free_func(int x) { return x; }
int main(){ // free function via std::invoke std::cout << "free: " << std::invoke(free_func, 42) << std::endl;
Obj o{ .value = 7, .data = 99 }; // pointer to member function auto mem_fn = &Obj::get; std::cout << "member: " << std::invoke(mem_fn, o) << std::endl;
// pointer to data member auto mem_data = &Obj::data; std::cout << "data: " << std::invoke(mem_data, o) << std::endl; return 0;}