| 3601 | #endif |
| 3602 | typename = enable_if_t<std::is_member_pointer<decay_t<Fn>>::value>, int = 0> |
| 3603 | constexpr auto invoke(Fn&& f, Args&&... args) noexcept(noexcept(std::mem_fn(f)(std::forward<Args>(args)...))) |
| 3604 | -> decltype(std::mem_fn(f)(std::forward<Args>(args)...)) { |
| 3605 | return std::mem_fn(f)(std::forward<Args>(args)...); |
| 3606 | } |
| 3607 | |
| 3608 | template <typename Fn, typename... Args, typename = enable_if_t<!std::is_member_pointer<decay_t<Fn>>::value>> |
| 3609 | constexpr auto invoke(Fn&& f, Args&&... args) noexcept(noexcept(std::forward<Fn>(f)(std::forward<Args>(args)...))) |
no test coverage detected