No estoy seguro de qué impulso :: bind hace cuando nos vinculamos a variables miembro. Con el enlace a la función de miembro, básicamente creamos un objeto de función, y luego lo llamamos pasando los argumentos que se proporcionan o se retrasan y se sustituyen por marcadores de posición.Encuadernación a una variable miembro
Pero lo que hace esta expresión no detrás de las escenas:
boost::bind(&std::pair::second, _1);
Lo que se sustituidos en lugar del marcador de posición _1?
yo encontramos este leyendo este ejemplo de un artículo sobre boost :: bind mientras:
void print_string(const std::string& s) {
std::cout << s << '\n';
}
std::map<int,std::string> my_map;
my_map[0]="Boost";
my_map[1]="Bind";
std::for_each(
my_map.begin(),
my_map.end(),
boost::bind(&print_string, boost::bind(
&std::map<int,std::string>::value_type::second,_1)));