1
bool takeInt(int a,int b)
{
cout << a << " " << b << endl; return true;
}
int main()
{
map<int,int> m;
m.insert(make_pair(1,2));
m.insert(make_pair(2,5));
m.insert(make_pair(4,8));
m.insert(make_pair(5,6));
for_each(m.begin(),m.end(),boost::bind(&takeInt,42,boost::bind(&pair<int,int>::first,_1)));
return 0;
}
Я хочу, чтобы выходиспользованием подталкивание :: связать с картой
42 1
42 2
42 4
42 5
Сбой компиляции с Loong ошибок. Любая подсказка о том, чего я не хватает?
из любопытства: где находилось определение карты :: value_type? @myself: просто посмотрел определение на cpp.com, и он cleary говорит value_type: 'pair' –
@CarstenGreiner В этом случае я был уверен, в противном случае я смотрю его в стандарте (обычно проект N3337 http: // open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3337.pdf) или сама реализация библиотеки. – pmr
Из этого я научился всегда использовать typedef, если это не возможно. 'boost :: bind (& Map :: value_type :: first, _1)' – balki