[#absl-FunctionRef-081-2constructor-059] = xref:absl.adoc[absl]::xref:absl/FunctionRef-081.adoc[FunctionRef<R const(Args...)>]::FunctionRef :relfileprefix: ../../ :mrdocs: Constructors == Synopses Declared in `<absl/functional/function_ref.h>` Construct from `nontype_t` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< auto F, typename = xref:absl/FunctionRef-081/EnableIfCompatible.adoc[EnableIfCompatible<decltype(F)>]> xref:absl/FunctionRef-081/2constructor-0f.adoc[FunctionRef](xref:absl/nontype_t.adoc[nontype_t<F>] arg) noexcept; ---- [.small]#xref:absl/FunctionRef-081/2constructor-0f.adoc[_» more..._]# Construct from `F` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename F, typename = xref:absl/FunctionRef-081/EnableIfCompatible.adoc[EnableIfCompatible<F const&>]> xref:absl/FunctionRef-081/2constructor-053.adoc[FunctionRef](F const& f) noexcept; ---- [.small]#xref:absl/FunctionRef-081/2constructor-053.adoc[_» more..._]# Construct from `F` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename F, typename = xref:absl/FunctionRef-081/EnableIfCompatible.adoc[EnableIfCompatible<F&>]> xref:absl/FunctionRef-081/2constructor-0c.adoc[FunctionRef](F&& f) noexcept; ---- [.small]#xref:absl/FunctionRef-081/2constructor-0c.adoc[_» more..._]# Construct from `F` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename F, typename = xref:absl/FunctionRef-081/EnableIfCompatible.adoc[EnableIfCompatible<F*>], absl::functional_internal::EnableIf<std::is_function_v<F>> = 0> xref:absl/FunctionRef-081/2constructor-04.adoc[FunctionRef](F* f) noexcept; ---- [.small]#xref:absl/FunctionRef-081/2constructor-04.adoc[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< auto F, typename Obj, typename = xref:absl/FunctionRef-081/EnableIfCompatible.adoc[EnableIfCompatible<decltype(F), Obj*>]> xref:absl/FunctionRef-081/2constructor-00.adoc[FunctionRef]( xref:absl/nontype_t.adoc[nontype_t<F>], Obj* obj) noexcept; ---- [.small]#xref:absl/FunctionRef-081/2constructor-00.adoc[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< auto F, typename Obj, typename = xref:absl/FunctionRef-081/EnableIfCompatible.adoc[EnableIfCompatible<decltype(F), Obj const*>]> xref:absl/FunctionRef-081/2constructor-0d.adoc[FunctionRef]( xref:absl/nontype_t.adoc[nontype_t<F>] arg, Obj const* obj) noexcept; ---- [.small]#xref:absl/FunctionRef-081/2constructor-0d.adoc[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< auto F, typename Obj, typename = xref:absl/FunctionRef-081/EnableIfCompatible.adoc[EnableIfCompatible<decltype(F), std::remove_reference_t<Obj>&>], absl::functional_internal::EnableIf<! std::is_rvalue_reference_v<Obj &&>> = 0> xref:absl/FunctionRef-081/2constructor-09.adoc[FunctionRef]( xref:absl/nontype_t.adoc[nontype_t<F>] arg, Obj&& obj) noexcept; ---- [.small]#xref:absl/FunctionRef-081/2constructor-09.adoc[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< auto F, typename Obj, typename = xref:absl/FunctionRef-081/EnableIfCompatible.adoc[EnableIfCompatible<decltype(F), std::remove_reference_t<Obj>&>], absl::functional_internal::EnableIf<!std::is_rvalue_reference_v<Obj &&>> = 0> xref:absl/FunctionRef-081/2constructor-07.adoc[FunctionRef]( xref:absl/nontype_t.adoc[nontype_t<F>] arg, Obj&& obj) noexcept; ---- [.small]#xref:absl/FunctionRef-081/2constructor-07.adoc[_» more..._]# [.small]#Created with https://www.mrdocs.com[MrDocs]#