10 #ifndef SACADO_MPL_BIND_HPP
11 #define SACADO_MPL_BIND_HPP
13 #include <type_traits>
22 template <
int k,
class F,
class T1,
class T2,
class T3,
class T4,
class T5>
25 template <
int k,
int N,
class T1,
class T2,
class T3,
class T4,
class T5>
29 template <
int k,
class T1,
class T2,
class T3,
class T4,
class T5>
33 template <
class F,
class T1>
42 typename hk<std::is_same<T1,placeholders::_>::value,
44 U1,U2,U3,U4,U5>::type> {};
47 template <
class F,
class T1,
class T2>
56 typename hk<std::is_same<T1,placeholders::_>::value,
58 U1,U2,U3,U4,U5>::type,
59 typename hk<std::is_same<T1,placeholders::_>::value+
60 std::is_same<T2,placeholders::_>::value,
62 U1,U2,U3,U4,U5>::type> {};
65 template <
class F,
class T1,
class T2,
class T3>
74 typename hk<std::is_same<T1,placeholders::_>::value,
76 U1,U2,U3,U4,U5>::type,
77 typename hk<std::is_same<T1,placeholders::_>::value+
78 std::is_same<T2,placeholders::_>::value,
80 U1,U2,U3,U4,U5>::type,
81 typename hk<std::is_same<T1,placeholders::_>::value+
82 std::is_same<T2,placeholders::_>::value+
83 std::is_same<T3,placeholders::_>::value,
85 U1,U2,U3,U4,U5>::type> {};
88 template <
class F,
class T1,
class T2,
class T3,
class T4>
97 typename hk<std::is_same<T1,placeholders::_>::value,
99 U1,U2,U3,U4,U5>::type,
100 typename hk<std::is_same<T1,placeholders::_>::value+
101 std::is_same<T2,placeholders::_>::value,
103 U1,U2,U3,U4,U5>::type,
104 typename hk<std::is_same<T1,placeholders::_>::value+
105 std::is_same<T2,placeholders::_>::value+
106 std::is_same<T3,placeholders::_>::value,
108 U1,U2,U3,U4,U5>::type,
109 typename hk<std::is_same<T1,placeholders::_>::value+
110 std::is_same<T2,placeholders::_>::value+
111 std::is_same<T3,placeholders::_>::value+
112 std::is_same<T4,placeholders::_>::value,
114 U1,U2,U3,U4,U5>::type> {};
117 template <
class F,
class T1,
class T2,
class T3,
class T4,
class T5>
126 typename hk<std::is_same<T1,placeholders::_>::value,
128 U1,U2,U3,U4,U5>::type,
129 typename hk<std::is_same<T1,placeholders::_>::value+
130 std::is_same<T2,placeholders::_>::value,
132 U1,U2,U3,U4,U5>::type,
133 typename hk<std::is_same<T1,placeholders::_>::value+
134 std::is_same<T2,placeholders::_>::value+
135 std::is_same<T3,placeholders::_>::value,
137 U1,U2,U3,U4,U5>::type,
138 typename hk<std::is_same<T1,placeholders::_>::value+
139 std::is_same<T2,placeholders::_>::value+
140 std::is_same<T3,placeholders::_>::value+
141 std::is_same<T4,placeholders::_>::value,
143 U1,U2,U3,U4,U5>::type,
144 typename hk<std::is_same<T1,placeholders::_>::value+
145 std::is_same<T2,placeholders::_>::value+
146 std::is_same<T3,placeholders::_>::value+
147 std::is_same<T4,placeholders::_>::value+
148 std::is_same<T5,placeholders::_>::value,
150 U1,U2,U3,U4,U5>::type> {};
157 #endif // SACADO_MPL_BIND_HPP