title: how to create an adaptor that will return map values based on filtered key using a predicate for key
body: <p>How to create a adaptor that will return map values based on filtered key using a predicate for key?</p>
  
  <p>As an example:</p>
  
  <pre><code>std::map&lt;int,int&gt; map_obj; 
  const int match_value = 0xFF00;
  for(auto&amp; i : map_obj | filtered_key_map_values([match_value](key_type&amp; x){ return (x &amp; match_value) &gt; 0; } | indirected )
  {
      std::copy&lt;typeof(i)&gt;(std::cout," ,"); 
  }
  </code></pre>