[#btcsignals-signal-operator_call] = xref:btcsignals.adoc[btcsignals]::xref:btcsignals/signal.adoc[signal]::operator() :relfileprefix: ../../ :mrdocs: Execute all enabled callbacks for the signal. Rather than allowing for custom combiners, the behavior of any_of is hard‐coded here. == Synopsis Declared in `<util/btcsignals.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename... Args> [[nodiscard, requires_capability(0x7f2e358a2f98), requires_capability(0x7f2e3039c748), requires_capability(0x7f2e2b9df638), requires_capability(0x7f2e41adc838), requires_capability(0x7f2e32120598), requires_capability(0x7f2e41e5ac28), requires_capability(0x7f2e27b0c288), requires_capability(0x7f2e411bb678)]] xref:btcsignals/signal/result_type.adoc[result_type] operator()(Args&&... args) const; ---- == Description Callbacks which return void require special handling. In order to avoid locking during the callbacks, the list of callbacks is cached before they are called. This allows a callback to call connect(), but the newly connected callback will not be run during the current signal invocation. Note that the parameters are accepted as universal references, though they are not perfectly forwarded as that could cause a use‐after‐move if more than one callback is enabled. == Return Value void for the null_value combiner, or true if any callback returned true for the any_of combiner. [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. |=== == Parameters [cols="1,4"] |=== | Name| Description | *args* | The arguments passed to each enabled callback. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#