std :: find принимает константную ссылку
Это правда, но все это означает, что метод не изменит Item *
.Чтобы передать const Item *
(что и есть &item
), вам потребуется гарантия, что метод не изменит базовый Item
.Эта гарантия действительно существует, но C ++ не может этого сказать.Поэтому вам нужно написать:
_items.find(const_cast<Item *>(&item))
, чтобы сообщить C ++, что вы знаете, что это безопасно.