00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef QOLYESTER_UTL_COMPARATOR_HH
00020 # define QOLYESTER_UTL_COMPARATOR_HH 1
00021
00022 # include <iterator>
00023
00024 namespace olsr {
00025
00026 namespace utl {
00027
00028 template <typename T, class Compare = std::less<T> >
00029 struct pless {
00030 bool operator()(const T* const a, const T* const b) const {
00031 return Compare()(*a, *b);
00032 }
00033 };
00034
00035 template <typename T, class Equal = std::equal_to<T> >
00036 struct pequal_to {
00037 bool operator()(const T* const a, const T* const b) const {
00038 return Equal()(*a, *b);
00039 }
00040 };
00041
00042 template <class Iter,
00043 class Compare =
00044 std::less<typename std::iterator_traits<Iter>::value_type> >
00045 struct iless {
00046 bool operator()(const Iter& a, const Iter& b) const {
00047 return Compare()(*a, *b);
00048 }
00049 };
00050
00051 template <class Iter,
00052 class Equal =
00053 std::equal_to<typename std::iterator_traits<Iter>::value_type> >
00054 struct iequal_to {
00055 bool operator()(const Iter& a, const Iter& b) const {
00056 return Equal()(*a, *b);
00057 }
00058 };
00059
00060
00061 }
00062
00063 }
00064
00065 #endif // ! QOLYESTER_UTL_COMPARATOR_HH