[personal profile] palindromer

Сегодня первый раз наткнулся в проекте на код, который не смог с ходу осознать без подгляда в книжку. Бустовская лямбда штука очень прикольная и позволяет конструировать разные велосипеды с турбонаддувом вроде таких:

        typedef std::vector< int > TV;
	TV v;
        ...
	TV::iterator it = (std::find_if(v.begin(), v.end(), _1 > 5));

Все логично и понятно пока в контейнере простые типы. Если там какой-нибудь класс и надо добраться до членов, то уже:
        typedef std::pair< int, std::string> TP;
	typedef std::vector< TP > TV;
	TV v;
        ...
	TV::iterator it = (std::find_if(v.begin(), v.end(), (&(_1)->*&TP::first) > 5));

И т.д.