Это мой первый вопрос. Я сдался и буду использовать для этого функтор, скрученный вручную, но мне интересно, как это должно быть сделано. Придуманный ниже пример предназначен для изменения размера всех векторов в векторе размером 9, заполнив их нулями. Указанная строка приводит к тому, что MinGW GCC 4.5.0 выдает много ошибок шаблона. Я пробовал несколько различных перестановок, но только разместил код, который я считаю «наиболее близким к правильному» ниже. Как это должно быть написано? Обратите внимание, я хочу сохранить версию resize с двумя аргументами.
#include <vector>
using std::vector;
#include <algorithm>
using std::for_each;
#include <tr1/functional>
using std::tr1::bind;
using std::tr1::placeholders::_1;
int main() {
vector<vector<void *> > stacked_vector(20);
for_each(stacked_vector.begin(),stacked_vector.end(),
bind(&std::vector<void *>::resize,_1,9,0/*NULL*/)); // voluminous error output
return 0;
}
Большое спасибо за ваш вклад.