Objeto _1
Espaços reservados para argumentos substituíveis.
namespace placeholders {
extern unspecified _1, _2, ... _M
} // namespace placeholders (within std::tr1)
Comentários
Os objetos _1, _2, ... _M são espaços reservados designando a primeira, segunda,..., argumento de mês, respectivamente, em uma telefonar de função a um objeto retornado por BIND a função. Usar _N Para especificar onde o enésimo argumento deve ser inserido quando a expressão de vinculação é avaliada.
Nesta implementação o valor de M é 10.
Exemplo
// std_tr1__functional__placeholder.cpp
// compile with: /EHsc
#include <functional>
#include <algorithm>
#include <iostream>
using namespace std::tr1::placeholders;
void square(double x)
{
std::cout << x << "^2 == " << x * x << std::endl;
}
void product(double x, double y)
{
std::cout << x << "*" << y << " == " << x * y << std::endl;
}
int main()
{
double arg[] = {1, 2, 3};
std::for_each(&arg[0], &arg[3], square);
std::cout << std::endl;
std::for_each(&arg[0], &arg[3], std::tr1::bind(product, _1, 2));
std::cout << std::endl;
std::for_each(&arg[0], &arg[3], std::tr1::bind(square, _1));
return (0);
}
1^2 == 1 2^2 == 4 3^2 == 9 1*2 == 2 2*2 == 4 3*2 == 6 1^2 == 1 2^2 == 4 3^2 == 9
Requisitos
Cabeçalho:<functional>
Namespace: std::tr1