@@ -137,46 +137,82 @@ namespace eastl
137137 template <typename R, typename T> struct is_mem_fun_pointer_value <R (T::*)() const > : public true_type{};
138138 template <typename R, typename T> struct is_mem_fun_pointer_value <R (T::*)() volatile > : public true_type{};
139139 template <typename R, typename T> struct is_mem_fun_pointer_value <R (T::*)() const volatile > : public true_type{};
140+ template <typename R, typename T> struct is_mem_fun_pointer_value <R (T::*)() noexcept > : public true_type{};
141+ template <typename R, typename T> struct is_mem_fun_pointer_value <R (T::*)() const noexcept > : public true_type{};
142+ template <typename R, typename T> struct is_mem_fun_pointer_value <R (T::*)() volatile noexcept > : public true_type{};
143+ template <typename R, typename T> struct is_mem_fun_pointer_value <R (T::*)() const volatile noexcept > : public true_type{};
140144
141145 template <typename R, typename T, typename Arg0> struct is_mem_fun_pointer_value <R (T::*)(Arg0)> : public true_type{};
142146 template <typename R, typename T, typename Arg0> struct is_mem_fun_pointer_value <R (T::*)(Arg0) const > : public true_type{};
143147 template <typename R, typename T, typename Arg0> struct is_mem_fun_pointer_value <R (T::*)(Arg0) volatile > : public true_type{};
144148 template <typename R, typename T, typename Arg0> struct is_mem_fun_pointer_value <R (T::*)(Arg0) const volatile > : public true_type{};
149+ template <typename R, typename T, typename Arg0> struct is_mem_fun_pointer_value <R (T::*)(Arg0) noexcept > : public true_type{};
150+ template <typename R, typename T, typename Arg0> struct is_mem_fun_pointer_value <R (T::*)(Arg0) const noexcept > : public true_type{};
151+ template <typename R, typename T, typename Arg0> struct is_mem_fun_pointer_value <R (T::*)(Arg0) volatile noexcept > : public true_type{};
152+ template <typename R, typename T, typename Arg0> struct is_mem_fun_pointer_value <R (T::*)(Arg0) const volatile noexcept > : public true_type{};
145153
146154 template <typename R, typename T, typename Arg0, typename Arg1> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1)> : public true_type{};
147155 template <typename R, typename T, typename Arg0, typename Arg1> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1) const > : public true_type{};
148156 template <typename R, typename T, typename Arg0, typename Arg1> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1) volatile > : public true_type{};
149157 template <typename R, typename T, typename Arg0, typename Arg1> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1) const volatile > : public true_type{};
158+ template <typename R, typename T, typename Arg0, typename Arg1> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1) noexcept > : public true_type{};
159+ template <typename R, typename T, typename Arg0, typename Arg1> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1) const noexcept > : public true_type{};
160+ template <typename R, typename T, typename Arg0, typename Arg1> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1) volatile noexcept > : public true_type{};
161+ template <typename R, typename T, typename Arg0, typename Arg1> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1) const volatile noexcept > : public true_type{};
150162
151163 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2)> : public true_type{};
152164 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2) const > : public true_type{};
153165 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2) volatile > : public true_type{};
154166 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2) const volatile > : public true_type{};
167+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2) noexcept > : public true_type{};
168+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2) const noexcept > : public true_type{};
169+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2) volatile noexcept > : public true_type{};
170+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2) const volatile noexcept > : public true_type{};
155171
156172 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3)> : public true_type{};
157173 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3) const > : public true_type{};
158174 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3) volatile > : public true_type{};
159175 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3) const volatile > : public true_type{};
176+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3) noexcept > : public true_type{};
177+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3) const noexcept > : public true_type{};
178+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3) volatile noexcept > : public true_type{};
179+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3) const volatile noexcept > : public true_type{};
160180
161181 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4)> : public true_type{};
162182 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4) const > : public true_type{};
163183 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4) volatile > : public true_type{};
164184 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4) const volatile > : public true_type{};
185+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4) noexcept > : public true_type{};
186+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4) const noexcept > : public true_type{};
187+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4) volatile noexcept > : public true_type{};
188+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4) const volatile noexcept > : public true_type{};
165189
166190 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5)> : public true_type{};
167191 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5) const > : public true_type{};
168192 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5) volatile > : public true_type{};
169193 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5) const volatile > : public true_type{};
194+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5) noexcept > : public true_type{};
195+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5) const noexcept > : public true_type{};
196+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5) volatile noexcept > : public true_type{};
197+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5) const volatile noexcept > : public true_type{};
170198
171199 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6)> : public true_type{};
172200 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6) const > : public true_type{};
173201 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6) volatile > : public true_type{};
174202 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6) const volatile > : public true_type{};
203+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6) noexcept > : public true_type{};
204+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6) const noexcept > : public true_type{};
205+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6) volatile noexcept > : public true_type{};
206+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6) const volatile noexcept > : public true_type{};
175207
176208 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6, typename Arg7> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7)> : public true_type{};
177209 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6, typename Arg7> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7) const > : public true_type{};
178210 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6, typename Arg7> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7) volatile > : public true_type{};
179211 template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6, typename Arg7> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7) const volatile > : public true_type{};
212+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6, typename Arg7> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7) noexcept > : public true_type{};
213+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6, typename Arg7> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7) const noexcept > : public true_type{};
214+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6, typename Arg7> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7) volatile noexcept > : public true_type{};
215+ template <typename R, typename T, typename Arg0, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5, typename Arg6, typename Arg7> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7) const volatile noexcept > : public true_type{};
180216
181217 template <typename T>
182218 struct is_member_function_pointer : public integral_constant <bool , is_mem_fun_pointer_value<T>::value>{};
0 commit comments