#include <functional>
struct Foo {
int x = 10;
int bar(int y) { return x + y; }
};
int main() {
Foo f;
auto a = std::invoke(&Foo::bar, f, 5); // 行1
auto b = std::invoke(&Foo::x, f); // 行2
auto c = std::invoke([](int n){ return n; }, 42); // 行3
// auto d = std::invoke(42); // 行4
} 