Подскажите, пожалуйста, как правильно использовать inplace_merge для сложных объектов? Пробую так, получаю ошибку:
class Cls {
public:
int a1;
}
class Work {
public:
Work(void) {p = &Work::Comp;}
bool Comp(Cls* A1,Cls* A2) {return A1->a1 < A2->a1};
std::vector<Cls*> A;
typedef bool (Work::*p_type)(Cls*,Cls*);
p_type p;
void Add(*Cls C) {
A.push_back(C);
std::inplace_merge(A.begin(),A.end()-1,A.end(),p); // здесь получаю ошибку
}
}
текст ошибки:
error C2064: результатом вычисления фрагмента не является функция, принимающая 2 аргументов