Предположим, у вас есть набор указателей (да...):
std::set<SomeType*> myTypeContainer;
Затем предположим, что вы хотите выполнить поиск этого набора из метода const метода SomeType:
bool SomeType::IsContainered() const
{
return myTypeContainer.find(this) != myTypeContainer.end();
}
Это не работает. this
PTR в методе является const SomeType *const
, что я не могу поставить в find
. Проблема заключается в том, что find
принимает const-ref, что в данном случае означает, что переданный указатель рассматривается как const, но не тот, на который он указывает.
Есть ли способ разрешить это плавно (без изменения типа шаблона набора)?