Набор указателей мьютекса - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь сохранить несколько мьютексов (указателей) в наборе.

std::set<std::mutex*> mutex_set;    

addLock(const std::mutex* lock)
{
  mutex_set.insert(lock)
}

Так как это не работает, я пробовал блокировку блокировки и уникальные указатели, но безуспешно. Каков наилучший способ хранения мьютекса в наборе?

1 Ответ

0 голосов
/ 31 октября 2018

Ваша проблема, вероятно, вызвана const. Код, который компилируется:

std::set<std::mutex*> mutex_set;    

void addLock(std::mutex* lock)
{
  mutex_set.insert(lock);
}

Вы также можете избегать использования необработанных указателей - поскольку отсутствует семантика владения (т. Е. Кто владеет и может удалить указанный объект - в данном случае мьютекс).

...