Я не могу скомпилировать следующий код g ++ 4.3.2:
#include <stdlib.h>
#include <algorithm>
struct Generator {
ptrdiff_t operator() (ptrdiff_t max) {
return rand() % max;
}
};
Generator generator;
std::vector<size_t> indices;
// fill vector
std::random_shuffle(indices.begin(), indices.end(), generator); // error here!
Почему мой компилятор выдает следующую ошибку в последней строке?
error: no matching function for call to ‘random_shuffle(__gnu_cxx::__normal_iterator > >, __gnu_cxx::__normal_iterator > >, Generator&)’
Заранее спасибо!