| 4137 | #endif |
| 4138 | typename = enable_if_t<std::is_member_pointer<decay_t<Fn>>::value>, int = 0> |
| 4139 | constexpr auto invoke(Fn&& f, Args&&... args) noexcept(noexcept(std::mem_fn(f)(std::forward<Args>(args)...))) |
| 4140 | -> decltype(std::mem_fn(f)(std::forward<Args>(args)...)) { |
| 4141 | return std::mem_fn(f)(std::forward<Args>(args)...); |
| 4142 | } |
| 4143 | |
| 4144 | template <typename Fn, typename... Args, typename = enable_if_t<!std::is_member_pointer<decay_t<Fn>>::value>> |
| 4145 | constexpr auto invoke(Fn&& f, Args&&... args) noexcept(noexcept(std::forward<Fn>(f)(std::forward<Args>(args)...))) |
no test coverage detected