A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://cplusplus.com/reference/functional/placeholders/ below:

namespace

<functional>

std::placeholders
namespace placeholders {  extern /* unspecified */ _1;  extern /* unspecified */ _2;  extern /* unspecified */ _3;  // ...}

Bind argument placeholders

This namespace declares an unspecified number of objects: _1, _2, _3,..., which are used to specify placeholders in calls to function bind.

When the function object returned by bind is called, an argument with placeholder _1 is replaced by the first argument in the call, _2 is replaced by the second argument in the call, and so on... For example:


1
2
3
using namespace std::placeholders;
auto bound_fn = std::bind (fn,100,_1);
bound_fn(5);  // calls fn(100,5), i.e.: replacing _1 by the first argument: 5 

The type of these placeholder objects is unspecified (it depends on the library implementation, see is_placeholder), but in all cases their type shall at least be nothrow default-constructible and nothrow copy-constructible. Whether assignment operations or additional constructors are supported is implementation-defined, but any copy-assignment or move-constructor shall also be not throwing.

When a call to bind is used as a subexpression in another call to bind, the placeholders are relative to the outermost bind expression.



Objects
_1
Replaced by the first argument in the function call.
_2
Replaced by the second argument in the function call.
_N
Replaced by the Nth argument in the function call (where N is a natural number).

See also
bind
Bind function arguments (function template)
is_placeholder
Is placeholder (class template)

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4