Want more features on Pastebin? Sign Up, it's FREE!
Guest

Phil Nash

By: a guest on Nov 8th, 2008  |  syntax: C++  |  size: 1.42 KB  |  views: 128  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  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.         }
clone this paste RAW Paste Data