23                               JComparator_t compare,
 
   24                               std::bidirectional_iterator_tag)
 
   31    for (T __i = __last; --__i != __rend; ) {
 
   35      for (__j = __last; __j != __end && !compare(*__i,*__j); ++__j) {}
 
   41        if (++__i != __last && ++__j != __end) {
 
   48          while (__k != __j && __i != __last)
 
   49            iter_swap(__i++,--__k);
 
   59    reverse(__begin, __last);
 
   60    reverse(__last,  __end);
 
   61    reverse(__begin, __end);