В приведенном ниже фрагменте кода я пытаюсь удалить элемент из вектора внутри функции-члена на основе функции статического условия, введенной в функцию std :: remove_if , Моя проблема заключается в том, что входной параметр uuid в методе removeVipAddress не может получить доступ к функции условия. Как вы думаете, что я должен сделать здесь, чтобы разрешить удаление элемента из вектора на основе входного параметра с именем uuid? Благодарю. Примечание: Это прослеживание проблема объяснялось ранее в Removing an item from an std:: vectorПоследующие действия: Удаление элемента из std :: vector
SNIPPET 1 (КОД)
void removeVipAddress(std::string &uuid)
{
struct RemoveCond
{
static bool condition(const VipAddressEntity & o)
{
return o.getUUID() == uuid;
}
};
std::vector<VipAddressEntity>::iterator last =
std::remove_if(
mVipAddressList.begin(),
mVipAddressList.end(),
RemoveCond::condition);
mVipAddressList.erase(last, mVipAddressList.end());
}
SNIPPET 2 (СБОР ВЫХОД)
$ g++ -g -c -std=c++11 -Wall Entity.hpp
Entity.hpp: In static member function ‘static bool ECLBCP::VipAddressSet::removeVipAddress(std::string&)::RemoveCond::condition(const ECLBCP::VipAddressEntity&)’:
Entity.hpp:203:32: error: use of parameter from containing function
Entity.hpp:197:7: error: ‘std::string& uuid’ declared here