包装介绍标准功能
Wrap intro std function
所以,我没有理由在这个声明中使用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)
(,并为该通用签名的任何函数(无论是普通函数、成员函数还是类似函数的对象(创建一个多态包装器。
相关文章:
- 为什么 C++ 标准库中没有 SIMD 功能?
- C++没有标准功能的立方体根查找器
- 如何将标准::矢量插入具有自定义排序功能的 std::set 中
- 标准::矢量的擦除功能
- 如何(以及谁可以)实现C++委员会定义的标准库功能
- 在意外功能结束时进行清理,标准等效
- 使用多个参数将成员功能指针转换为标准C函数
- 剪辑功能的标准库版本
- 包装介绍标准功能
- 标准::地图比较功能
- C 1Z标准如何定义模板功能声明中属性的正确位置
- 如何为标准功能分配空间并做记忆
- C++的最后一个位置是否有计算单元的标准功能
- 标准::功能与标准功能
- 是否可以保证C++标准库容器调用可替换的新功能
- 为什么C++标准中没有 std::copy_until 功能
- 为什么C++标准保留了这样的冗余功能?
- 是否有标准的静态功能包装器类型模板
- 标准::转换的功能版本
- 我可以在不使用标准API功能的情况下创建过程