std::invoke
时间: 2024-05-23 09:08:07 浏览: 218
C++11/14 线程的创建与分离的实现
std::invoke是一个通用的函数调用工具,可以用于调用函数、成员函数和函数对象。它可以用于替代函数指针、成员函数指针和std::mem_fn等。在使用std::invoke时,它会根据传入参数的类型自动选择最合适的调用方式,从而让代码更加简洁。
如果传入的是一个函数指针或成员函数指针,std::invoke会直接调用该指针指向的函数或成员函数;如果传入的是一个可调用对象(如lambda表达式),std::invoke会调用该对象的operator()函数。
另外,std::invoke支持绑定参数(使用std::bind或者类似bind的库),从而可以在调用时指定部分参数。这对于某些需要动态生成参数的场景非常有用。
阅读全文