00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef CGATOOLS_UTIL_INDIRECTCOMPARATOR_HPP_
00016 #define CGATOOLS_UTIL_INDIRECTCOMPARATOR_HPP_ 1
00017
00019
00020 #include "cgatools/core.hpp"
00021
00022 namespace cgatools { namespace util {
00023
00024 template <class Container>
00025 class IndirectComparator
00026 {
00027 public:
00028 IndirectComparator(const Container& cc)
00029 : cc_(cc)
00030 {
00031 }
00032
00033 template <class Index>
00034 bool operator()(const Index& lhs, const Index& rhs) const
00035 {
00036 return cc_[lhs] < cc_[rhs];
00037 }
00038
00039 private:
00040 const Container& cc_;
00041 };
00042
00043 } }
00044
00045 #endif // CGATOOLS_UTIL_INDIRECTCOMPARATOR_HPP_