Je suis confus quant à ce que boost :: bind fait lorsque nous nous lions à des variables membres. Avec la liaison à la fonction membre, nous créons essentiellement un objet fonction, puis l'appelons les arguments fournis ou retardés et substitués via des espaces réservés.Liaison à une variable membre
Mais qu'est-ce que cette expression ne dans les coulisses:
boost::bind(&std::pair::second, _1);
Ce qui est substitué en place de l'espace réservé _1?
Je trouve cela tout en lisant cet exemple d'un article sur boost :: bind:
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)));