| 251 | { |
| 252 | template<typename F, typename Tuple, std::size_t... I> |
| 253 | constexpr auto apply_impl(F&& fn, Tuple&& tpl, index_sequence<I...>) |
| 254 | noexcept(noexcept(dlib::invoke(std::forward<F>(fn), |
| 255 | std::get<I>(std::forward<Tuple>(tpl))...))) |
| 256 | -> decltype(dlib::invoke(std::forward<F>(fn), |
| 257 | std::get<I>(std::forward<Tuple>(tpl))...)) |
| 258 | { |
| 259 | return dlib::invoke(std::forward<F>(fn), |
| 260 | std::get<I>(std::forward<Tuple>(tpl))...); |
| 261 | } |
| 262 | } // end namespace detail |
| 263 | |
| 264 | // ---------------------------------------------------------------------------------------- |