template<
typename F,
typename = enable_if<detail::conjunction<std::is_constructible<data, typename detail::move_or_copy_construct_ref<F, Func>::type, typename std::is_nothrow_constructible<Func, typename detail::move_or_copy_construct_ref<F, Func>::type>::type>, detail::is_not_like_scope_final<F>>::value>::type>
scope_final(F&& func) noexcept(std::is_nothrow_constructible<data, typename detail::move_or_copy_construct_ref<F, Func>::type, typename std::is_nothrow_constructible<Func, typename detail::move_or_copy_construct_ref<F, Func>::type>::type>::value);
» more...