Ваша проблема, вероятно, вызвана const
. Код, который компилируется:
std::set<std::mutex*> mutex_set;
void addLock(std::mutex* lock)
{
mutex_set.insert(lock);
}
Вы также можете избегать использования необработанных указателей - поскольку отсутствует семантика владения (т. Е. Кто владеет и может удалить указанный объект - в данном случае мьютекс).