List.Sort(compare_function) - term does not evaluate to a function taking 2 arguments

Shaitan00

Well-known member
Joined
Aug 11, 2003
Messages
343
Location
Hell
I am trying to customize my sorting of a LIST using a compare_function, but for some odd reason it keeps giving me the following error:
error C2064: term does not evaluate to a function taking 2 arguments

Specifically, I have list created within class B which needs to be sorted, the list contains elements of type A* as shown below:

Class B code:
Code:
B::B()
{
list<A*> AList;

AList.push_back(new A(ID_1, CODE_1));
AList.push_back(new A(ID_2, CODE_2));

AtList.sort(&B::compareID);
}

bool B::compareID(A* first, A* second)
{
return true;	// test for now
}

Just for completness the following is the code for Class A:
Code:
Class A
{
	long ID;
	string sCode;
	A(_ID, _sCode) : ID(_ID), sCode(_sCode) {};
}

So, pretty much I just want to sort AList by ID, but for some odd reason this generates:
error C2064: term does not evaluate to a function taking 2 arguments

Also, in the future I am going to want to create a compareCode() function to also compare by code ... thought if one way works so will the other ...

Any clues, hints, or help would be greatly appreciated.
Thanks,
 
Re: List.Sort(compare_function) - term does not evaluate to a function taking 2 argum

Maybe B::CompareID should be static?
 
Back
Top