Передача указателя на функцию-член C ++ в алгоритм STL
У меня есть функция-член следующим образом:
class XYZ{
public:
float function(float x);
private:
float m_DensityMin;
float m_DensityMax;
};
Теперь я пытаюсь преобразоватьstd::vector<float> foo
с использованиемstd::transform
Алгоритм STL, передавая функцию-членfunction
и сохраняя полученные значения в вектореbar
.
Если я использую функцию как глобальную функцию со случайными данными, которые должны обозначать переменные-члены класса, она работает нормально.
Однако, поскольку функция требует использования переменных-членовm_DensityMin
а такжеm_DensityMax
класса, мне нужно использовать его в качестве функции-члена. Вот что я пробовал:
std::transform(foo.begin(), foo.end(), bar.begin(), &XYZ::function);
но я в конечном итоге с ошибкой в VS2010:
error C2065: term does not evaluate to a function taking 1 arguments
Насколько я могу сказать, я передаю только 1 аргумент. Есть указатели? Вот похожийвопросЯ пробовал с std :: mem_fun, так как std :: mem_fn мне не доступен, но безрезультатно.