Найти shared_ptr в unordered_set только с const shared_ptr? - PullRequest
0 голосов
/ 08 июня 2018

У меня есть unordered_set<shared_ptr<T>> us, и я хотел бы знать, находится ли игла k в us, но k имеет тип shared_ptr<T const>, поэтому unordered_set<shared_ptr<T>>::find жалуется, что не может конвертировать.

Есть ли способ обойти это?Может быть, поставив хэш напрямую?

Я попробовал const_cast (и почувствовал себя грязным), но это не сработало.

1 Ответ

0 голосов
/ 08 июня 2018

Использование std::const_pointer_cast является возможным решением здесь.

us.find(std::const_pointer_cast<T>(k));

Поскольку вы не изменяете k, все в порядке, отбросьте константу.

...