Line data Source code
1 : //
2 : // Author: Vladimir Migashko <migashko@wamba.com>, (C) 2013
3 : //
4 : // Copyright: See COPYING file that comes with this distribution
5 : //
6 :
7 : #ifndef COMPARATORS_COMPARE_HPP
8 : #define COMPARATORS_COMPARE_HPP
9 :
10 : namespace vset{
11 :
12 : /**
13 : * @brief Компаратор с преобразованием
14 : * @tparam A преобразователь
15 : * @tparam C компаратор
16 : */
17 : template<typename A, typename C>
18 : struct compare
19 : {
20 : /**
21 : * @brief оператор сравнения
22 : * @tparam D тип исходных данных (например указатель или итератор)
23 : * @param left значение для сравнения
24 : * @param right значение для сравнения
25 : * @return `C()( A()(left), A()(right) )`
26 : */
27 : template<typename D>
28 1360 : bool operator()(const D& left, const D& right) const
29 : {
30 1360 : return C()( A()(left), A()(right) );
31 : }
32 : };
33 :
34 : }
35 :
36 : #endif
|