:relfileprefix: ../../../
[#AE7FFB38E948E416C21171D6D5E3C29218BAF15E-scope_exit]

= Overload set scope_exit::scope_exit

== Members




[source,cpp,subs="verbatim,macros,-callouts"]
----
template<
    typename F,
    typename = enable_if<detail::conjunction<std::is_nothrow_default_constructible<Cond>, std::is_constructible<data, typename detail::move_or_copy_construct_ref<F, Func>::type, typename detail::move_or_copy_construct_ref<Cond>::type, bool>, detail::is_not_like_scope_exit<F>>::value>::type>
scope_exit(
    F&& func,
    bool active = true) noexcept(std::is_nothrow_constructible<data, typename detail::move_or_copy_construct_ref<F, Func>::type, typename detail::move_or_copy_construct_ref<Cond>::type, bool>::value);
  xref:boost/scope/scope_exit-0a/2constructor-027.adoc[pass:c,q,m[*_» more..._*]]
----




[source,cpp,subs="verbatim,macros,-callouts"]
----
template<
    typename F,
    typename C,
    typename = enable_if<detail::conjunction<detail::is_invocable<const C &>, std::is_constructible<data, typename detail::move_or_copy_construct_ref<F, Func>::type, typename detail::move_or_copy_construct_ref<C, Cond>::type, bool>>::value>::type>
scope_exit(
    F&& func,
    C&& cond,
    bool active = true) noexcept(std::is_nothrow_constructible<data, typename detail::move_or_copy_construct_ref<F, Func>::type, typename detail::move_or_copy_construct_ref<C, Cond>::type, bool>::value);
  xref:boost/scope/scope_exit-0a/2constructor-05.adoc[pass:c,q,m[*_» more..._*]]
----




[source,cpp,subs="verbatim,macros,-callouts"]
----
template<
    bool Requires = std::is_constructible<data, typename detail::move_or_copy_construct_ref<Func>::type, typename detail::move_or_copy_construct_ref<Cond>::type, bool>::value,
    typename = enable_if<Requires>::type>
scope_exit(xref:boost/scope/scope_exit-0a.adoc[scope_exit]&& that) noexcept(std::is_nothrow_constructible<data, typename detail::move_or_copy_construct_ref<Func>::type, typename detail::move_or_copy_construct_ref<Cond>::type, bool>::value);
  xref:boost/scope/scope_exit-0a/2constructor-0e.adoc[pass:c,q,m[*_» more..._*]]
----




[source,cpp,subs="verbatim,macros,-callouts"]
----
scope_exit(const xref:boost/scope/scope_exit-0a.adoc[scope_exit]&) = delete;
  xref:boost/scope/scope_exit-0a/2constructor-02d.adoc[pass:c,q,m[*_» more..._*]]
----

