包装介绍标准功能

Wrap intro std function

本文关键字:功能 标准 包装      更新时间:2023-10-16

所以,我没有理由在这个声明中使用std::function。仅从我读到的内容来看,可以使用std::function编写以下语句。

这句话应该是什么样子的?用std::function写的

template <class T>
class CFooTemplate
{
public:
    typedef void (T::*FOO_STATE)(void);

稍微解释一下,写作背后的逻辑。

我不

完全确定你的意思,但我会试一试。

这句话应该是什么样子的?用std::function写的

如果我理解正确,你的意思是这行:typedef void (T::*FOO_STATE)(void);

在这种情况下,您将编写typedef std::function<void()> FOO_STATE;

这是因为您使用的是指向(成员(函数的指针。函数本身的签名是 void() ,这在C++中等同于您使用的void(void)

std::function采用原始签名(例如 void()void(void) (,并为该通用签名的任何函数(无论是普通函数、成员函数还是类似函数的对象(创建一个多态包装器。