一组互斥量指针
Set of mutex pointers
我正在尝试将多个互斥锁(指针)存储到一个集合中。
std::set<std::mutex*> mutex_set;
addLock(const std::mutex* lock)
{
mutex_set.insert(lock)
}
因为这不起作用,我尝试了锁守卫和唯一指针,但没有成功。将互斥量存储到集合中的最佳方法是什么?
您的问题可能是由 const
引起的。编译代码:
std::set<std::mutex*> mutex_set;
void addLock(std::mutex* lock)
{
mutex_set.insert(lock);
}
您还可以考虑避免使用原始指针 - 因为没有所有权语义(即谁拥有并可以删除指向的对象 - 在这种情况下是互斥体)。
我正在尝试将多个互斥锁(指针)存储到一个集合中。
std::set<std::mutex*> mutex_set;
addLock(const std::mutex* lock)
{
mutex_set.insert(lock)
}
因为这不起作用,我尝试了锁守卫和唯一指针,但没有成功。将互斥量存储到集合中的最佳方法是什么?
您的问题可能是由 const
引起的。编译代码:
std::set<std::mutex*> mutex_set;
void addLock(std::mutex* lock)
{
mutex_set.insert(lock);
}
您还可以考虑避免使用原始指针 - 因为没有所有权语义(即谁拥有并可以删除指向的对象 - 在这种情况下是互斥体)。