@@ -178,6 +178,53 @@ namespace eastl
178178 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{};
179179 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{};
180180
181+ #ifdef __cpp_noexcept_function_type
182+ template <typename R, typename T> struct is_mem_fun_pointer_value <R (T::*)() noexcept > : public true_type{};
183+ template <typename R, typename T> struct is_mem_fun_pointer_value <R (T::*)() const noexcept > : public true_type{};
184+ template <typename R, typename T> struct is_mem_fun_pointer_value <R (T::*)() volatile noexcept > : public true_type{};
185+ template <typename R, typename T> struct is_mem_fun_pointer_value <R (T::*)() const volatile noexcept > : public true_type{};
186+
187+ template <typename R, typename T, typename Arg0> struct is_mem_fun_pointer_value <R (T::*)(Arg0) noexcept > : public true_type{};
188+ template <typename R, typename T, typename Arg0> struct is_mem_fun_pointer_value <R (T::*)(Arg0) const noexcept > : public true_type{};
189+ template <typename R, typename T, typename Arg0> struct is_mem_fun_pointer_value <R (T::*)(Arg0) volatile noexcept > : public true_type{};
190+ template <typename R, typename T, typename Arg0> struct is_mem_fun_pointer_value <R (T::*)(Arg0) const volatile noexcept > : public true_type{};
191+
192+ template <typename R, typename T, typename Arg0, typename Arg1> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1) noexcept > : public true_type{};
193+ template <typename R, typename T, typename Arg0, typename Arg1> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1) const noexcept > : public true_type{};
194+ template <typename R, typename T, typename Arg0, typename Arg1> struct is_mem_fun_pointer_value <R (T::*)(Arg0, Arg1) volatile noexcept > : public true_type{};
195+ 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{};
196+
197+ 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{};
198+ 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{};
199+ 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{};
200+ 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{};
201+
202+ 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{};
203+ 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{};
204+ 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{};
205+ 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{};
206+
207+ 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{};
208+ 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{};
209+ 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{};
210+ 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{};
211+
212+ 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{};
213+ 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{};
214+ 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{};
215+ 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{};
216+
217+ 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{};
218+ 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{};
219+ 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{};
220+ 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{};
221+
222+ 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{};
223+ 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{};
224+ 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{};
225+ 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{};
226+ #endif
227+
181228 template <typename T>
182229 struct is_member_function_pointer : public integral_constant <bool , is_mem_fun_pointer_value<T>::value>{};
183230
0 commit comments