@@ -214,6 +214,53 @@ namespace eastl
214214 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{};
215215 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{};
216216
217+ #ifdef __cpp_noexcept_function_type
218+ template <typename R, typename T> struct is_mem_fun_pointer_value <R (T::*)() noexcept > : public true_type{};
219+ template <typename R, typename T> struct is_mem_fun_pointer_value <R (T::*)() const noexcept > : public true_type{};
220+ template <typename R, typename T> struct is_mem_fun_pointer_value <R (T::*)() volatile noexcept > : public true_type{};
221+ template <typename R, typename T> struct is_mem_fun_pointer_value <R (T::*)() const volatile noexcept > : public true_type{};
222+
223+ template <typename R, typename T, typename Arg0> struct is_mem_fun_pointer_value <R (T::*)(Arg0) noexcept > : public true_type{};
224+ template <typename R, typename T, typename Arg0> struct is_mem_fun_pointer_value <R (T::*)(Arg0) const noexcept > : public true_type{};
225+ template <typename R, typename T, typename Arg0> struct is_mem_fun_pointer_value <R (T::*)(Arg0) volatile noexcept > : public true_type{};
226+ template <typename R, typename T, typename Arg0> struct is_mem_fun_pointer_value <R (T::*)(Arg0) const volatile noexcept > : public true_type{};
227+
228+ template <typename R, typename T, typename Arg0, typename Arg1> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1) noexcept > : public true_type{};
229+ template <typename R, typename T, typename Arg0, typename Arg1> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1) const noexcept > : public true_type{};
230+ template <typename R, typename T, typename Arg0, typename Arg1> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1) volatile noexcept > : public true_type{};
231+ 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{};
232+
233+ 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{};
234+ 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{};
235+ 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{};
236+ 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{};
237+
238+ 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{};
239+ 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{};
240+ 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{};
241+ 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{};
242+
243+ 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{};
244+ 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{};
245+ 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{};
246+ 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{};
247+
248+ 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{};
249+ 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{};
250+ 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{};
251+ 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{};
252+
253+ 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{};
254+ 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{};
255+ 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{};
256+ 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{};
257+
258+ 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{};
259+ 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{};
260+ 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{};
261+ 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{};
262+ #endif
263+
217264 template <typename T>
218265 struct is_member_function_pointer : public integral_constant <bool , is_mem_fun_pointer_value<T>::value>{};
219266
0 commit comments