Add Boost.Test karmic valgrind suppressions
[senf.git] / boost_ext / boost / multi_index / detail / value_compare.hpp
1 /* Copyright 2003-2007 Joaquín M López Muñoz.
2  * Distributed under the Boost Software License, Version 1.0.
3  * (See accompanying file LICENSE_1_0.txt or copy at
4  * http://www.boost.org/LICENSE_1_0.txt)
5  *
6  * See http://www.boost.org/libs/multi_index for library home page.
7  */
8
9 #ifndef BOOST_MULTI_INDEX_DETAIL_VALUE_COMPARE_HPP
10 #define BOOST_MULTI_INDEX_DETAIL_VALUE_COMPARE_HPP
11
12 #if defined(_MSC_VER)&&(_MSC_VER>=1200)
13 #pragma once
14 #endif
15
16 #include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */
17 #include <boost/call_traits.hpp>
18 #include <functional>
19
20 namespace boost{
21
22 namespace multi_index{
23
24 namespace detail{
25
26 template<typename Value,typename KeyFromValue,typename Compare>
27 struct value_comparison:std::binary_function<Value,Value,bool>
28 {
29   value_comparison(
30     const KeyFromValue& key_=KeyFromValue(),const Compare& comp_=Compare()):
31     key(key_),comp(comp_)
32   {
33   }
34
35   bool operator()(
36     typename call_traits<Value>::param_type x,
37     typename call_traits<Value>::param_type y)const
38   {
39     return comp(key(x),key(y));
40   }
41
42 private:
43   KeyFromValue key;
44   Compare      comp;
45 };
46
47 } /* namespace multi_index::detail */
48
49 } /* namespace multi_index */
50
51 } /* namespace boost */
52
53 #endif