32 #ifndef SACADO_MPL_BIND_HPP
33 #define SACADO_MPL_BIND_HPP
35 #include <type_traits>
44 template <
int k,
class F,
class T1,
class T2,
class T3,
class T4,
class T5>
47 template <
int k,
int N,
class T1,
class T2,
class T3,
class T4,
class T5>
51 template <
int k,
class T1,
class T2,
class T3,
class T4,
class T5>
55 template <
class F,
class T1>
64 typename hk<std::is_same<T1,placeholders::_>::value,
66 U1,U2,U3,U4,U5>::type> {};
69 template <
class F,
class T1,
class T2>
78 typename hk<std::is_same<T1,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,
84 U1,U2,U3,U4,U5>::type> {};
87 template <
class F,
class T1,
class T2,
class T3>
96 typename hk<std::is_same<T1,placeholders::_>::value,
98 U1,U2,U3,U4,U5>::type,
99 typename hk<std::is_same<T1,placeholders::_>::value+
100 std::is_same<T2,placeholders::_>::value,
102 U1,U2,U3,U4,U5>::type,
103 typename hk<std::is_same<T1,placeholders::_>::value+
104 std::is_same<T2,placeholders::_>::value+
105 std::is_same<T3,placeholders::_>::value,
107 U1,U2,U3,U4,U5>::type> {};
110 template <
class F,
class T1,
class T2,
class T3,
class T4>
119 typename hk<std::is_same<T1,placeholders::_>::value,
121 U1,U2,U3,U4,U5>::type,
122 typename hk<std::is_same<T1,placeholders::_>::value+
123 std::is_same<T2,placeholders::_>::value,
125 U1,U2,U3,U4,U5>::type,
126 typename hk<std::is_same<T1,placeholders::_>::value+
127 std::is_same<T2,placeholders::_>::value+
128 std::is_same<T3,placeholders::_>::value,
130 U1,U2,U3,U4,U5>::type,
131 typename hk<std::is_same<T1,placeholders::_>::value+
132 std::is_same<T2,placeholders::_>::value+
133 std::is_same<T3,placeholders::_>::value+
134 std::is_same<T4,placeholders::_>::value,
136 U1,U2,U3,U4,U5>::type> {};
139 template <
class F,
class T1,
class T2,
class T3,
class T4,
class T5>
148 typename hk<std::is_same<T1,placeholders::_>::value,
150 U1,U2,U3,U4,U5>::type,
151 typename hk<std::is_same<T1,placeholders::_>::value+
152 std::is_same<T2,placeholders::_>::value,
154 U1,U2,U3,U4,U5>::type,
155 typename hk<std::is_same<T1,placeholders::_>::value+
156 std::is_same<T2,placeholders::_>::value+
157 std::is_same<T3,placeholders::_>::value,
159 U1,U2,U3,U4,U5>::type,
160 typename hk<std::is_same<T1,placeholders::_>::value+
161 std::is_same<T2,placeholders::_>::value+
162 std::is_same<T3,placeholders::_>::value+
163 std::is_same<T4,placeholders::_>::value,
165 U1,U2,U3,U4,U5>::type,
166 typename hk<std::is_same<T1,placeholders::_>::value+
167 std::is_same<T2,placeholders::_>::value+
168 std::is_same<T3,placeholders::_>::value+
169 std::is_same<T4,placeholders::_>::value+
170 std::is_same<T5,placeholders::_>::value,
172 U1,U2,U3,U4,U5>::type> {};
179 #endif // SACADO_MPL_BIND_HPP