12 namespace boost {
namespace mpl {
14 template<
typename T,
bool has_type_ >
18 typedef typename T::type
type;
21 template<
typename T >
28 template<
typename P1 >
class F
29 ,
typename Tag =
void_
33 template<
typename U1 >
struct apply
38 , aux::has_type< F<U1> >::value
44 template<
typename P1,
typename P2 >
class F
45 ,
typename Tag =
void_
49 template<
typename U1,
typename U2 >
struct apply
54 , aux::has_type< F< U1,U2 > >::value
60 template<
typename P1,
typename P2,
typename P3 >
class F
61 ,
typename Tag =
void_
65 template<
typename U1,
typename U2,
typename U3 >
struct apply
70 , aux::has_type< F< U1,U2,U3 > >::value
76 template<
typename P1,
typename P2,
typename P3,
typename P4 >
class F
77 ,
typename Tag =
void_
82 typename U1,
typename U2,
typename U3,
typename U4
89 , aux::has_type< F< U1,U2,U3,U4 > >::value
96 typename P1,
typename P2,
typename P3,
typename P4
100 , typename Tag =
void_
105 typename U1,
typename U2,
typename U3,
typename U4
113 , aux::has_type< F< U1,U2,U3,U4,U5 > >::value