using DisplayCallback = function<void()>;表达式怎么理解
时间: 2024-04-14 21:27:58 浏览: 127
C++11 function 委托机制 观察者模式,适用于界面开发,lambda表达式
这个表达式是通过使用`using`关键字来创建一个类型别名,将`std::function<void()>`定义为`DisplayCallback`类型。
具体来说,`std::function<void()>`是一个可调用对象的封装器,它可以存储一个返回类型为`void`且没有参数的函数或可调用对象(如函数指针、成员函数指针、函数对象或lambda表达式等)。
而通过`using DisplayCallback = function<void()>;`这个表达式,我们将`std::function<void()>`命名为`DisplayCallback`。这样,我们可以使用`DisplayCallback`作为类型来声明变量、参数或返回值,并且它的行为和使用`std::function<void()>`是一样的。
例如,我们可以这样使用`DisplayCallback`:
```cpp
#include <iostream>
#include <functional>
using DisplayCallback = std::function<void()>;
void displayMessage() {
std::cout << "Hello, World!" << std::endl;
}
int main() {
DisplayCallback callback = displayMessage;
callback(); // 输出结果为: Hello, World!
return 0;
}
```
在这个示例中,我们首先使用`using DisplayCallback = std::function<void()>;`定义了一个名为`DisplayCallback`的类型别名,它表示无返回值且没有参数的可调用对象。
然后,我们定义了一个名为`displayMessage`的函数,它会输出一条消息。在`main`函数中,我们声明了一个`DisplayCallback`类型的变量`callback`,并将函数`displayMessage`赋值给它。通过调用`callback`来执行绑定的函数,输出结果为"Hello, World!"。
这样,通过使用`DisplayCallback`作为类型别名,我们可以更方便地声明和使用返回类型为`void`且没有参数的可调用对象。
阅读全文