1. template <class ForwarIterator, class T> 
  2. bool binary_search(ForwardIterator first, ForwardIterator last, const T& value) { 
  3.     ForwardIterator i = lower_bound(first, last, value); 
  4.     return i != last && !(value < *i);