[#absl-FunctionRef-081-2constructor-059]
= xref:absl.adoc[absl]::xref:absl/FunctionRef-081.adoc[FunctionRef&lt;R const(Args&period;&period;&period;)&gt;]::FunctionRef
:relfileprefix: ../../
:mrdocs:

Constructors

== Synopses

Declared in `&lt;absl&sol;functional&sol;function&lowbar;ref&period;h&gt;`

Construct from `nontype&lowbar;t`


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    auto F,
    typename = xref:absl/FunctionRef-081/EnableIfCompatible.adoc[EnableIfCompatible&lt;decltype(F)&gt;]&gt;
xref:absl/FunctionRef-081/2constructor-0f.adoc[FunctionRef](xref:absl/nontype_t.adoc[nontype&lowbar;t&lt;F&gt;] arg) noexcept;
----

[.small]#xref:absl/FunctionRef-081/2constructor-0f.adoc[_» more&period;&period;&period;_]#

Construct from `F`


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename F,
    typename = xref:absl/FunctionRef-081/EnableIfCompatible.adoc[EnableIfCompatible&lt;F const&&gt;]&gt;
xref:absl/FunctionRef-081/2constructor-053.adoc[FunctionRef](F const& f) noexcept;
----

[.small]#xref:absl/FunctionRef-081/2constructor-053.adoc[_» more&period;&period;&period;_]#

Construct from `F`


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename F,
    typename = xref:absl/FunctionRef-081/EnableIfCompatible.adoc[EnableIfCompatible&lt;F&&gt;]&gt;
xref:absl/FunctionRef-081/2constructor-0c.adoc[FunctionRef](F&& f) noexcept;
----

[.small]#xref:absl/FunctionRef-081/2constructor-0c.adoc[_» more&period;&period;&period;_]#

Construct from `F`


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename F,
    typename = xref:absl/FunctionRef-081/EnableIfCompatible.adoc[EnableIfCompatible&lt;F*&gt;],
    absl::functional&lowbar;internal::EnableIf&lt;std&colon;&colon;is&lowbar;function&lowbar;v&lt;F&gt;&gt; = 0&gt;
xref:absl/FunctionRef-081/2constructor-04.adoc[FunctionRef](F* f) noexcept;
----

[.small]#xref:absl/FunctionRef-081/2constructor-04.adoc[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    auto F,
    typename Obj,
    typename = xref:absl/FunctionRef-081/EnableIfCompatible.adoc[EnableIfCompatible&lt;decltype(F), Obj*&gt;]&gt;
xref:absl/FunctionRef-081/2constructor-00.adoc[FunctionRef](
    xref:absl/nontype_t.adoc[nontype&lowbar;t&lt;F&gt;],
    Obj* obj) noexcept;
----

[.small]#xref:absl/FunctionRef-081/2constructor-00.adoc[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    auto F,
    typename Obj,
    typename = xref:absl/FunctionRef-081/EnableIfCompatible.adoc[EnableIfCompatible&lt;decltype(F), Obj const*&gt;]&gt;
xref:absl/FunctionRef-081/2constructor-0d.adoc[FunctionRef](
    xref:absl/nontype_t.adoc[nontype&lowbar;t&lt;F&gt;] arg,
    Obj const* obj) noexcept;
----

[.small]#xref:absl/FunctionRef-081/2constructor-0d.adoc[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    auto F,
    typename Obj,
    typename = xref:absl/FunctionRef-081/EnableIfCompatible.adoc[EnableIfCompatible&lt;decltype(F), std::remove&lowbar;reference&lowbar;t&lt;Obj&gt;&&gt;],
    absl::functional&lowbar;internal::EnableIf&lt;! std&colon;&colon;is&lowbar;rvalue&lowbar;reference&lowbar;v&lt;Obj &amp;&amp;&gt;&gt; = 0&gt;
xref:absl/FunctionRef-081/2constructor-09.adoc[FunctionRef](
    xref:absl/nontype_t.adoc[nontype&lowbar;t&lt;F&gt;] arg,
    Obj&& obj) noexcept;
----

[.small]#xref:absl/FunctionRef-081/2constructor-09.adoc[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    auto F,
    typename Obj,
    typename = xref:absl/FunctionRef-081/EnableIfCompatible.adoc[EnableIfCompatible&lt;decltype(F), std::remove&lowbar;reference&lowbar;t&lt;Obj&gt;&&gt;],
    absl::functional&lowbar;internal::EnableIf&lt;!std&colon;&colon;is&lowbar;rvalue&lowbar;reference&lowbar;v&lt;Obj &amp;&amp;&gt;&gt; = 0&gt;
xref:absl/FunctionRef-081/2constructor-07.adoc[FunctionRef](
    xref:absl/nontype_t.adoc[nontype&lowbar;t&lt;F&gt;] arg,
    Obj&& obj) noexcept;
----

[.small]#xref:absl/FunctionRef-081/2constructor-07.adoc[_» more&period;&period;&period;_]#


[.small]#Created with https://www.mrdocs.com[MrDocs]#
