[#FOLLY_INVOKE_MEMBER]
= FOLLY&lowbar;INVOKE&lowbar;MEMBER
:mrdocs:

&ast; FOLLY&lowbar;INVOKE&lowbar;MEMBER

== Synopsis

Declared in `&lt;folly&sol;functional&sol;Invoke&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
#define FOLLY&lowbar;INVOKE&lowbar;MEMBER(membername)

----

== Description

An invoker expression resulting in an invocable which, when invoked, invokes the member on the object with the given arguments&period;

Example&colon;

FOLLY&lowbar;INVOKE&lowbar;MEMBER(find)(map, key)

Equivalent to&colon;

map&period;find(key)

But also equivalent to&colon;

std&colon;&colon;invoke(FOLLY&lowbar;INVOKE&lowbar;MEMBER(find), map, key)

As an implementation detail, the resulting callable uses a lambda&period; This has two observable consequences&period; &ast; Since C&plus;&plus;17 only, lambda invocations may be marked constexpr&period; &ast; Since C&plus;&plus;20 only, lambda definitions may appear in an unevaluated context, namely, in an operand to decltype, noexcept, sizeof, or typeid&period;

== Parameters

[cols="1,4"]
|===
| Name| Description
| *membername*
| the member name to invoke on the object
|===


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