带有提升:函数定义的升压:信号图
A map of boost:signals with boost:function definition
我正在尝试创建一个简单的管理器,它将错误代码映射到函数。但是,由于地图复制了值并且信号不可复制,因此这不是解决方案。我无法使用shared_ptr指针的映射,因为 * 运算符在 boost::function 中被阻止。
我应该使用哪个集合来存储此集合?
typedef boost::function<bool (shared_ptr<EngineEvent> event,long timeSinceEvent)> EngineErrorHandler;
typedef boost::signal<bool ( EngineErrorHandler )> ErrorSignal;
typedef std::map<EventErrorType,ErrorSignal> ErrorHandlers;
class ServiceErrorManager {
public:
static ServiceErrorManager* getInstance();
void registerErrorHandler(EngineErrorHandler& handler,EventErrorType subScribeTo);
void signalEngineEventfail(shared_ptr<EngineEvent> event);
private:
static ServiceErrorManager* m_pInstance;
ErrorHandlers errorTypeToSignal;
ServiceErrorManager();
~ServiceErrorManager();
};
}
您始终可以将所有内容存储到结构中,并使用自定义谓词将shared_ptr或unique_ptr对象存储在映射或集中。这似乎也会使您的代码更加不言自明。
相关文章:
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- C++函数包装器来捕获某些信号
- QObject::连接不起作用 - 使用函数语法找不到信号
- 如何在C++中使用 std::bind 函数作为信号处理程序?
- 如何使用 qt 中的信号槽控制函数的返回
- 从 Qt 中的信号调用成员函数的问题
- Qt的新信号/时隙语法问题 - 连接到一个简单的函数
- 窗口上信号处理程序的异步安全写入函数
- 程序在没有操作系统信号的情况下在函数中的特定行挂起
- 瓶颈 C++ 排序函数Wi-Fi 信号
- 在Qt中,如何延迟成员函数的返回,直到收到信号?
- C++ QT:获取指向信号的指针和插槽功能的函数
- 这是在Qt信号和插槽中使用参数调用函数的好方法吗?
- 在 for 循环中使用 lambda 函数连接信号插槽
- 如何使用拖放功能和点击信号函数QT创建标签
- Qt - 使用λ函数修改先前连接信号的插槽参数
- 如何使用unique_ptr声明调用构造函数并处理程序终止信号
- 如何使 WaitForSingleObject 在从 main 调用的线程内接收信号作为类成员函数
- IntelliSense函数定义未找到QT信号的警告
- 连接来自未知类的成员函数以增强信号