Как я могу отменить возвращаемое значение предиката и удалить элементы, которые возвращают ложь вместо истины?
Вот мой код:
headerList.remove_if(FindName(name));
(пожалуйста, игнорируйте отсутствие стирания)
с FindName простым функтором:
struct FindName
{
CString m_NameToFind;
FindInspectionNames(const CString &nameToFind)
{
m_NameToFind = nameToFind;
}
bool operator()(const CHeader &header)
{
if(header.Name == m_NameToFind)
{
return true;
}
return false;
}
};
Я бы хотел что-то вроде:
list.remove_if(FindName(name) == false);
Еще не использую c ++ 0x, поэтому лямбды не разрешены, к сожалению,Я надеюсь, что есть более приятное решение, чем написание функтора NotFindName.