:relfileprefix: ../../
[#087101E06FA30F600B30149113B4F6B89E58BBBF]

= Class scope_final

pass:v,q[Scope final guard that invokes a function upon leaving the scope.]


== Synopsis

Declared in header `<https://github.com/Lastique/scope/blob/develop/include/boost/scope/scope_final.hpp#L57[boost/scope/scope_final.hpp,window=blank_]>`

[source,cpp,subs="verbatim,macros,-callouts"]
----
template<typename Func>
class scope_final;
----

==  Member Functions
[,cols=2]
|===
|Name |Description
|xref:boost/scope/scope_final-00/operator_assign.adoc[`pass:v[operator=]`] |

|xref:boost/scope/scope_final-00/2constructor.adoc[`pass:v[scope_final]`] |
|xref:boost/scope/scope_final-00/2destructor.adoc[`pass:v[~scope_final]`] |
pass:v,q[Invokes the wrapped callable function object and destroys the callable.]

|===

== Description

pass:v,q[The scope guard wraps a function object callable with no arguments] pass:v,q[that can be one of:]

* pass:v,q[A user-defined class with a public `operator()`.]

* pass:v,q[An lvalue reference to such class.]

* pass:v,q[An lvalue reference or pointer to function taking no arguments.]
pass:v,q[The scope final guard unconditionally invokes the wrapped function object]
pass:v,q[on destruction.]



