我正在寻找在添加或删除项目时发出Qt信号的通用容器/集合类(例如,列表,映射).
我知道标准的Qt容器类没有这样做.有人知道任何有可观察容器的OSS库吗?
我意识到模板和Qt功能存在问题.如果它很容易,我会自己做,而不是寻找现有的.:)
谢谢.
我想控制对一堆数据类的getter和setter的访问,以便可以同时从多个线程安全地访问它们.我之前用java.util.concurrent.locks.ReentrantReadWriteLock在Java中完成了这个,它非常轻松.
但是现在我在当前的C++项目中遇到了很多麻烦,因为我找不到可重入的读/写锁实现.具体来说,我想要一个允许线程获得读锁定的锁,如果它已经有写锁定,没有阻塞并且没有先放弃写锁定.
原因很简单:我的一些setter方法调用getter方法,前者(通常)获取写锁,后者读锁.我不想扭曲我直截了当的getter/setter架构只是为了解决锁类中的限制.
我尝试过Qt(4.8)QReadWriteLock和相关类,以及Boost的unique_lock和shared_lock.两个库都没有实现我需要的重入.Boost的其他部分是否解决了这个问题?
或者是否有其他库有这个?我真的很惊讶Qt和Boost似乎都没有,因为它似乎是一个明显可取的特征.(自2004年以来,它一直是Java标准库的一部分.)