:relfileprefix: ../../../
[#C78CB675CCEE6578EFDEB0D69E45D6F853DDAE29-unique_resource]

= Overload set unique_resource::unique_resource

== Members




[source,cpp,subs="verbatim,macros,-callouts"]
----
template<
    bool Requires = std::is_default_constructible<data>::value,
    typename = enable_if<Requires>::type>
constexpr
unique_resource() noexcept(std::is_nothrow_default_constructible<data>::value);
  xref:boost/scope/unique_resource-0c/2constructor-0d5.adoc[pass:c,q,m[*_» more..._*]]
----




[source,cpp,subs="verbatim,macros,-callouts"]
----
template<
    typename D,
    typename = enable_if<std::is_constructible<data, default_resource_t, typename detail::move_or_copy_construct_ref<D, deleter_type>::type>::value>::type>
unique_resource(
    xref:boost/scope/default_resource_t.adoc[default_resource_t] res,
    D&& del) noexcept(std::is_nothrow_constructible<data, default_resource_t, typename detail::move_or_copy_construct_ref<D, deleter_type>::type>::value);
  xref:boost/scope/unique_resource-0c/2constructor-0d0.adoc[pass:c,q,m[*_» more..._*]]
----




[source,cpp,subs="verbatim,macros,-callouts"]
----
template<
    typename R,
    typename = enable_if<detail::conjunction<std::is_nothrow_default_constructible<deleter_type>, std::is_constructible<data, typename detail::move_or_copy_construct_ref<R, resource_type>::type, typename detail::move_or_copy_construct_ref<deleter_type>::type>, detail::disjunction<detail::negation<std::is_reference<resource_type>>, std::is_reference<R>>>::value>::type>
unique_resource(R&& res) noexcept(std::is_nothrow_constructible<data, typename detail::move_or_copy_construct_ref<R, resource_type>::type, typename detail::move_or_copy_construct_ref<deleter_type>::type>::value);
  xref:boost/scope/unique_resource-0c/2constructor-0d4.adoc[pass:c,q,m[*_» more..._*]]
----




[source,cpp,subs="verbatim,macros,-callouts"]
----
template<
    typename R,
    typename D,
    typename = enable_if<detail::conjunction<std::is_constructible<data, typename detail::move_or_copy_construct_ref<R, resource_type>::type, typename detail::move_or_copy_construct_ref<D, deleter_type>::type>, detail::disjunction<detail::negation<std::is_reference<resource_type>>, std::is_reference<R>>>::value>::type>
unique_resource(
    R&& res,
    D&& del) noexcept(std::is_nothrow_constructible<data, typename detail::move_or_copy_construct_ref<R, resource_type>::type, typename detail::move_or_copy_construct_ref<D, deleter_type>::type>::value);
  xref:boost/scope/unique_resource-0c/2constructor-05.adoc[pass:c,q,m[*_» more..._*]]
----




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




[source,cpp,subs="verbatim,macros,-callouts"]
----
template<
    bool Requires = std::is_move_constructible<data>::value,
    typename = enable_if<Requires>::type>
unique_resource(xref:boost/scope/unique_resource-0c.adoc[unique_resource]&& that) noexcept(std::is_nothrow_move_constructible<data>::value);
  xref:boost/scope/unique_resource-0c/2constructor-08.adoc[pass:c,q,m[*_» more..._*]]
----

