• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (C) 2005 Arkadiy Vertleyb, Peder Holt.
2 // Use, modification and distribution is subject to the Boost Software
3 // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
4 
5 #ifndef BOOST_TYPEOF_STD_functional_hpp_INCLUDED
6 #define BOOST_TYPEOF_STD_functional_hpp_INCLUDED
7 
8 #include <functional>
9 #include <boost/typeof/typeof.hpp>
10 
11 #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
12 
13 #ifndef BOOST_NO_CXX98_FUNCTION_BASE
14 BOOST_TYPEOF_REGISTER_TEMPLATE(std::unary_function, 2)
15 BOOST_TYPEOF_REGISTER_TEMPLATE(std::binary_function, 3)
16 #endif//BOOST_NO_CXX98_FUNCTION_BASE
17 BOOST_TYPEOF_REGISTER_TEMPLATE(std::plus, 1)
18 BOOST_TYPEOF_REGISTER_TEMPLATE(std::minus, 1)
19 BOOST_TYPEOF_REGISTER_TEMPLATE(std::multiplies, 1)
20 BOOST_TYPEOF_REGISTER_TEMPLATE(std::divides, 1)
21 BOOST_TYPEOF_REGISTER_TEMPLATE(std::modulus, 1)
22 BOOST_TYPEOF_REGISTER_TEMPLATE(std::negate, 1)
23 BOOST_TYPEOF_REGISTER_TEMPLATE(std::equal_to, 1)
24 BOOST_TYPEOF_REGISTER_TEMPLATE(std::not_equal_to, 1)
25 BOOST_TYPEOF_REGISTER_TEMPLATE(std::greater, 1)
26 BOOST_TYPEOF_REGISTER_TEMPLATE(std::less, 1)
27 BOOST_TYPEOF_REGISTER_TEMPLATE(std::greater_equal, 1)
28 BOOST_TYPEOF_REGISTER_TEMPLATE(std::less_equal, 1)
29 BOOST_TYPEOF_REGISTER_TEMPLATE(std::logical_and, 1)
30 BOOST_TYPEOF_REGISTER_TEMPLATE(std::logical_or, 1)
31 BOOST_TYPEOF_REGISTER_TEMPLATE(std::logical_not, 1)
32 BOOST_TYPEOF_REGISTER_TEMPLATE(std::unary_negate, 1)
33 BOOST_TYPEOF_REGISTER_TEMPLATE(std::binary_negate, 1)
34 
35 #ifndef BOOST_NO_CXX98_BINDERS
36 
37 #if defined(__MWERKS__) && defined(_MSL_EXTENDED_BINDERS)
38     BOOST_TYPEOF_REGISTER_TEMPLATE(std::binder1st, 2)
39     BOOST_TYPEOF_REGISTER_TEMPLATE(std::binder2nd, 2)
40 #else
41     BOOST_TYPEOF_REGISTER_TEMPLATE(std::binder1st, 1)
42     BOOST_TYPEOF_REGISTER_TEMPLATE(std::binder2nd, 1)
43 #endif
44 
45 BOOST_TYPEOF_REGISTER_TEMPLATE(std::pointer_to_unary_function, 2)
46 BOOST_TYPEOF_REGISTER_TEMPLATE(std::pointer_to_binary_function, 3)
47 BOOST_TYPEOF_REGISTER_TEMPLATE(std::mem_fun_t, 2)
48 BOOST_TYPEOF_REGISTER_TEMPLATE(std::mem_fun1_t, 3)
49 BOOST_TYPEOF_REGISTER_TEMPLATE(std::mem_fun_ref_t, 2)
50 BOOST_TYPEOF_REGISTER_TEMPLATE(std::mem_fun1_ref_t, 3)
51 
52 #if !BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
53     BOOST_TYPEOF_REGISTER_TEMPLATE(std::const_mem_fun_t, 2)
54     BOOST_TYPEOF_REGISTER_TEMPLATE(std::const_mem_fun1_t, 3)
55     BOOST_TYPEOF_REGISTER_TEMPLATE(std::const_mem_fun_ref_t, 2)
56     BOOST_TYPEOF_REGISTER_TEMPLATE(std::const_mem_fun1_ref_t, 3)
57 #endif//BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
58 
59 #endif//BOOST_NO_CXX98_BINDERS
60 
61 #endif//BOOST_TYPEOF_STD_functional_hpp_INCLUDED
62