其中一种写法:
struct hook_info {
string lib_name;
string fun_name;
int param_count;
bool bIATHook;
hook_info(char *lib, char* fun, int param, bool b) {
lib_name = lib;
fun_name = fun;
param_count = param;
bIATHook = b;
}
bool operator< ( const hook_info& a) const
{
if (this->lib_name.compare(a.lib_name) < 0)
return true ;
if (this->lib_name.compare(a.lib_name) > 0)
return false;
if (this->fun_name.compare(a.fun_name) < 0)
return true ;
if (this->fun_name.compare(a.fun_name) > 0)
return false;
if (this->param_count < a.param_count)
return true;
if (this->param_count > a.param_count)
return false;
if (this->bIATHook == false && a.bIATHook == true)
return true;
if (this->bIATHook == true && a.bIATHook == false)
return false;
return false;
}
};