9 #ifndef BOOST_MULTI_INDEX_DETAIL_PROMOTES_ARG_HPP
10 #define BOOST_MULTI_INDEX_DETAIL_PROMOTES_ARG_HPP
25 #if !defined(BOOST_IS_CONVERTIBLE)
29 namespace multi_index{
33 template<
typename F,
typename Arg1,
typename Arg2>
36 template<
typename F,
typename Arg1,
typename Arg2>
54 namespace multi_index{
58 template<
typename F,
typename Arg1,
typename Arg2>
59 struct promotes_1st_arg:
61 mpl::not_<is_transparent<F,Arg1,Arg2> >,
62 is_convertible<const Arg1,Arg2>,
63 is_transparent<F,Arg2,Arg2>
67 template<
typename F,
typename Arg1,
typename Arg2>
68 struct promotes_2nd_arg:
70 mpl::not_<is_transparent<F,Arg1,Arg2> >,
71 is_convertible<const Arg2,Arg1>,
72 is_transparent<F,Arg1,Arg1>