C++ 17中std::invoke函数可以用来调用函数、函数指针以及类的成员函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #include <iostream> #include <functional> using namespace std; void globalFunction( ) { cout << "globalFunction ..." << endl; } class MyClass { public: void memberFunction ( int data ) { std::cout << "\nMyClass memberFunction ..." << std::endl; } static void staticFunction ( int data ) { std::cout << "MyClass staticFunction ..." << std::endl; } }; int main ( ) { MyClass obj; std::invoke ( &MyClass::memberFunction, obj, 100 ); std::invoke ( &MyClass::staticFunction, 200 ); std::invoke ( globalFunction ); return 0; }
|