C 技术/库,用于组合容器和自定义逻辑
A C++ technique/library for combining a container and custom logic?
我需要偶尔以延迟处理对象。但是,持有对象的线程不能延迟。
自然解决方案是要有一个单独的线程等待此类对象。当对象可用时,第二个线程将根据需要延迟并处理对象。第二个线程将在信号量上睡觉。当主线程具有延迟处理的对象时,它将对象将对象放入队列并发出信号信号。
虽然这会起作用,但仍有其他程序员(或i)可能会在排队对象时忘记信号的信号。我希望要执行此操作。
因此,我可能会创建自己的容器,该容器基于标准容器,但是增加了回调(也许使用基于策略的设计)和内部信号量。当将项目添加到容器中时,它将强制运行回调函数。
但是,这种功能似乎是如此有用,并且通常是希望的,以至于我敢打赌,有人已经编写了这本功能,可能比我在这里提出的更好的设计,并解决了诸如重新输入之类的毛茸茸的细节。是否存在图书馆?或者,是否有一种著名的技术来获得此功能?
我对此使用了私有继承,以及using
声明:
struct myVec : private std::vector<int> {
// Stuff that works the same
using std::vector<int>::push_back;
using std::vector<int>::erase;
using std::vector<int>::iterator;
// Stuff that works differently:
void erase(std::vector<int>::iterator it) { ... }
};
重要的是不要使用标准容器中的公共继承。您 Will 最终写了与切片和非虚拟破坏者有关的错误。
相关文章:
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- C++自定义比较函数
- 如何比较自定义类的std::变体
- std::设置自定义比较器
- 如何正确实现和访问运算符的各种自定义枚举器
- flutter:即使shouldRepaint()返回true,自定义画家也不会重新绘制
- 自定义先决条件对移动分配运算符有效吗
- 使用VS Code和CMake Tools运行自定义命令
- 如何创建从Maya(或类似程序)到虚幻引擎的自定义数据导出插件
- std::ranges::elements_view,用于自定义类似元组的数据
- 跟随整数索引列表的自定义类迭代器
- 在 cout 中将线条表单文件与自定义文本组合时出现问题
- C 技术/库,用于组合容器和自定义逻辑
- 测试和自定义构建目录的组合
- 在自定义组合框下拉列表控件上等待超过5秒会导致win32 C++应用程序在Windows7中挂起
- 将多个基结构组合到自定义类型
- 我如何定义一个自定义的方法来组合顶点
- 具有固定字符串列表和自定义数据的WinAPI组合框
- 如何使用自定义比较器函数将所有字谜组合在一起