Вам нужно будет использовать mem_fun
, чтобы превратить функцию-член в функциональный объект, затем используйте bind1st
, чтобы указать указатель this
.
Мне никогда особенно не удавалось заставить этот материал работать на регулярной основе (стандартные алгоритмы библиотеки, кажется, в основном предназначены для использования с автономными функциями или рукописными классами предикатов), но что-то вроде этого должно сработать: 1006 *
vector<MyClass>::iterator it =
stable_partition(main.begin(),
main.end(),
bind1st(mem_fun(&AnalyzeMemOps::sameBaseReg),
this));
mem_fun
возвращает вам объект функции, который принимает два аргумента, первый из которых является объектом для вызова функции-члена mem_fun
, а второй - единственным аргументом функции-члена.
bind1st
принимает объект функции, который принимает два аргумента, и возвращает вам новый, который принимает один аргумент, который при вызове через operator()
будет вызывать исходный объект функции с аргументом bind1st
в качестве первого аргумент и предоставленный аргумент как второй.
Конечным результатом является то, что создается новый объект функции, который принимает один аргумент и будет вызывать this->sameBaseReg
, передавая предоставленный аргумент.