title: Turning remove_if into remove_not_if
body: <p>How can I reverse a predicate's return value, and remove the elements that return false instead of true?</p>
  
  <p>Here is my code:</p>
  
  <pre><code>headerList.remove_if(FindName(name));
  </code></pre>
  
  <p>(please ignore lack of erase)</p>
  
  <p>with FindName a simple functor:</p>
  
  <pre><code>struct FindName
  {
      CString m_NameToFind;
  
      FindInspectionNames(const CString &amp;nameToFind)
      {
          m_NameToFind = nameToFind;
      }
  
      bool operator()(const CHeader &amp;header)
      {
          if(header.Name == m_NameToFind)
          {
              return true;
          }
  
          return false;
      }
  };
  </code></pre>
  
  <p>I would like something like:</p>
  
  <pre><code>list.remove_if(FindName(name) == false);
  </code></pre>
  
  <p>Not yet using c++0x, so lambdas not allowed, sadly.  I'm hoping there is a nicer solution than writing a NotFindName functor.</p>