[#btcsignals-signal-operator_call]
= xref:btcsignals.adoc[btcsignals]::xref:btcsignals/signal.adoc[signal]::operator()
:relfileprefix: ../../
:mrdocs:

Execute all enabled callbacks for the signal&period; Rather than allowing for custom combiners, the behavior of any&lowbar;of is hard&hyphen;coded here&period;

== Synopsis

Declared in `&lt;util&sol;btcsignals&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename&period;&period;&period; Args&gt;
&lsqb;&lsqb;nodiscard, requires&lowbar;capability(0x7f2e358a2f98), requires&lowbar;capability(0x7f2e3039c748), requires&lowbar;capability(0x7f2e2b9df638), requires&lowbar;capability(0x7f2e41adc838), requires&lowbar;capability(0x7f2e32120598), requires&lowbar;capability(0x7f2e41e5ac28), requires&lowbar;capability(0x7f2e27b0c288), requires&lowbar;capability(0x7f2e411bb678)&rsqb;&rsqb;
xref:btcsignals/signal/result_type.adoc[result&lowbar;type]
operator()(Args&&&period;&period;&period; args) const;
----

== Description

Callbacks which return void require special handling&period;

In order to avoid locking during the callbacks, the list of callbacks is cached before they are called&period; This allows a callback to call connect(), but the newly connected callback will not be run during the current signal invocation&period;

Note that the parameters are accepted as universal references, though they are not perfectly forwarded as that could cause a use&hyphen;after&hyphen;move if more than one callback is enabled&period;

== Return Value

void for the null&lowbar;value combiner, or true if any callback returned true for the any&lowbar;of combiner&period;

[NOTE]
====
The return value https://en.cppreference.com/cpp/language/attributes/nodiscard[should not be discarded^].
====
== Template Parameters

[cols="1,4"]
|===
| Name| Description
| *Args*
| The argument types forwarded to each connected callback&period;
|===

== Parameters

[cols="1,4"]
|===
| Name| Description
| *args*
| The arguments passed to each enabled callback&period;
|===


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