title: equal_range on one key, lower/upper bound on another in boost multi_index_container composite_key
body: <p>Suppose I have the following:</p>
  
  <pre><code>struct Person
  {
      std::string mName;
      Birthday mBirthday;
  };
  
  using namespace boost::mult_index;
  typedef multi_index_container&lt;
      Person,
      ordered_non_unique&lt;
          composite_key&lt;
              Person,
              member&lt;Person, std::string, &amp;Person::mName&gt;,
              member&lt;Person, Birthday, &amp;Person::mBirthday&gt;
          &gt; // composite_key
      &gt;  // ordered_non-unique
  &gt; PersonContainer; // mult_index_container
  
  PersonContainer personContainer;
  
  ...
  
  std::pair&lt;PersonContainer::iterator, PersonContainer::iterator&gt; similarPeople
      = personContainer.equal_range(boost::make_tuple("Bob","01/15/65"));
  </code></pre>
  
  <p>This would give me an iterator range where each iterator pointed to a Person named 'Bob' born on '01/15/65'.</p>
  
  <p>What if I want an iterator range that gave me all the people in the container named 'Bob' but born <em>between</em> '01/01/65' and '01/31/65'? This is effectively an equal_range on 'Bob' but a lower and upper bound on birthdays. Is this possible? If so please explain how?</p>
  
  <p>Thanks!</p>