30 #ifndef __ADJACENT_PREDICATE__ 
   31 #define __ADJACENT_PREDICATE__ 
   35 #include "DisplayPair.hxx" 
   37 template < 
typename T >
 
   42   bool operator()(
const T &v1, 
const T& v2)
 const {
 
   43     return (v1 <= _value ) && (_value < v2) ;
 
   48 template <
typename T1, 
typename T2, 
typename T3>
 
   50   public std::binary_function < std::pair<const std::pair<T1,T2>, T3 >,
 
   51                                 std::pair<const std::pair<T1,T2>, T3 >, bool > 
 
   53   std::pair<T1,T2> _value;
 
   55     std::cout << 
"1-Initializing with value " << _value << std::endl;
 
   57   bool operator()( 
const std::pair<
const std::pair<T1,T2>, T3 > & v1,  
 
   58                    const std::pair<
const std::pair<T1,T2>, T3 > v2)
 const {
 
   59     std::cout << 
"1-> :" << v1 << 
"," << v2 << 
" " << std::endl;
 
   60     return (v1.first <= _value ) && (_value < v2.first) ;
 
   64 template <
typename T1, 
typename T2>
 
   65 struct AdjacentPredicate<  std::pair<T1,T2> > : 
public std::binary_function < std::pair<T1,T2>, std::pair<T1,T2>, bool > 
 
   69     std::cout << 
"2-Initializing with value " << _value << std::endl;
 
   71   bool operator()( 
const std::pair<T1,T2> & v1,  
const std::pair<T1,T2>& v2)
 const {
 
   72     std::cout << 
"2-> :" << &(v1.first) << 
"," << &(v2.first) << 
" " << std::endl;
 
   73     return (v1.first <= _value ) && (_value < v2.first) ;