Advertisement
Guest User

Phil Nash

a guest
Nov 8th, 2008
535
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.42 KB | None | 0 0
  1.     template<typename T>
  2.     CompareChain<T> MakeCompareChain( const typename CompareChain<T>::CompareFunctor& f1 )
  3.     {
  4.         return CompareChain<T>( f1 );
  5.     }
  6.  
  7.     template<typename T>
  8.     CompareChain<T> MakeCompareChain( const typename CompareChain<T>::CompareFunctor& f1,
  9.                                       const typename CompareChain<T>::CompareFunctor& f2 )
  10.     {
  11.         return CompareChain<T>( f1, f2 );
  12.     }
  13.    
  14.     template<typename T>
  15.     CompareChain<T> MakeCompareChain(   const typename CompareChain<T>::CompareFunctor& f1,
  16.                                         const typename CompareChain<T>::CompareFunctor& f2,
  17.                                         const typename CompareChain<T>::CompareFunctor& f3 )
  18.     {
  19.         return CompareChain<T>( f1, f2, f3 );
  20.     }
  21.    
  22.     template<typename T>
  23.     CompareChain<T> MakeCompareChain( ComparisonResult ( *f1 )( const T&, const T& ) ) 
  24.     {
  25.         return CompareChain<T>( boost::bind( f1, _1, _2 ) );
  26.     }
  27.  
  28.     template<typename T>
  29.     CompareChain<T> MakeCompareChain(   ComparisonResult ( *f1 )( const T&, const T& ),
  30.                                         ComparisonResult ( *f2 )( const T&, const T& ) )   
  31.     {
  32.         return CompareChain<T>( boost::bind( f1, _1, _2 ),  boost::bind( f2, _1, _2 ) );
  33.     }
  34.  
  35.     template<typename T>
  36.     CompareChain<T> MakeCompareChain(   ComparisonResult ( *f1 )( const T&, const T& ),
  37.                                         ComparisonResult ( *f2 )( const T&, const T& ),
  38.                                         ComparisonResult ( *f3 )( const T&, const T& ) )   
  39.     {
  40.         return CompareChain<T>( boost::bind( f1, _1, _2 ),  boost::bind( f2, _1, _2 ),  boost::bind( f3, _1, _2 ) );
  41.     }
  42.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement