1 
2 //  (C) Copyright Edward Diener 2011,2012,2013
3 //  Use, modification and distribution are subject to the Boost Software License,
4 //  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5 //  http://www.boost.org/LICENSE_1_0.txt).
6 
7 #if !defined(BOOST_TTI_DETAIL_PTMF_HPP)
8 #define BOOST_TTI_DETAIL_PTMF_HPP
9 
10 #include <boost/config.hpp>
11 #include <boost/mpl/push_front.hpp>
12 #include <boost/function_types/member_function_pointer.hpp>
13 
14 namespace boost
15   {
16   namespace tti
17     {
18     namespace detail
19       {
20       template
21         <
22         class BOOST_TTI_DETAIL_TP_T,
23         class BOOST_TTI_DETAIL_TP_R,
24         class BOOST_TTI_DETAIL_TP_FS,
25         class BOOST_TTI_DETAIL_TP_TAG
26         >
27       struct ptmf_seq
28         {
29         typedef typename
30         boost::function_types::member_function_pointer
31           <
32           typename
33           boost::mpl::push_front
34             <
35             typename
36             boost::mpl::push_front<BOOST_TTI_DETAIL_TP_FS,BOOST_TTI_DETAIL_TP_T>::type,
37             BOOST_TTI_DETAIL_TP_R
38             >::type,
39           BOOST_TTI_DETAIL_TP_TAG
40           >::type type;
41         };
42       }
43     }
44   }
45 
46 #endif // BOOST_TTI_DETAIL_PTMF_HPP
47