C++ std::function的用法

std::function是C++标准库中的一个模板类,用于封装可调用对象(函数、函数指针、函数对象、Lambda表达式等)。它提供了一种通用的方式来存储和调用这些可调用对象,类似于函数指针的概念,但更加灵活和安全。

std::function的用法如下:

C++ std::function的用法
  1. 定义一个std::function对象:std::function<返回类型(参数类型)> func;
  2. 将可调用对象赋值给std::function对象:func = 可调用对象;
  3. 调用std::function对象:func(参数);

下面是一个简单的示例,演示了std::function的用法:

#include <iostream>
#include <functional>

int add(int a, int b) {
    return a + b;
}

int main() {
    std::function<int(int, int)> func = add;
    int result = func(3, 4);
    std::cout << "Result: " << result << std::endl;

    return 0;
}

在上面的示例中,我们定义了一个std::function对象func,它接受两个int类型的参数并返回一个int类型的结果。我们将add函数赋值给func,然后通过func调用add函数,得到结果7。

除了函数,您还可以将其他可调用对象(如Lambda表达式、函数对象等)赋值给std::function对象,并以相同的方式进行调用。

总而言之,std::function提供了一种方便的方法来存储和调用可调用对象,使得在运行时动态确定调用的函数或函数对象成为可能。它是C++中函数对象和函数指针的一种通用封装,可以大大增强程序的灵活性。

诗词

《明月几时有》[唐]白居易

上一篇

电脑维护

蓝屏代码:0x0000000C - MAXIMUM_WAIT_OBJECTS_EXCEEDED

下一篇