我有一个结构体数组,如下所示。
struct valueCache
{
bool valid;
int startPc;
int index;
f32bit input[12];
f32bit result[12];
};
static const int vcSize = 32;
static valueCache * vc = new valueCache[vcSize];
我想按索引降序对数组进行排序。所以我尝试了这个:
myClass.cpp
bool myClass::sortByIndex(const valueCache &lhs, const valueCache &rhs) { return lhs.index > rhs.index; }
bool myClass::sortArray(
{
std::sort(vc, vc + vcSize, sortByIndex);
}
myClass.h
class myClass
{
public:
bool sortByIndex(const valueCache &lhs, const valueCache &rhs);
}
我得到这个错误
error: argument of type
‘bool (gpu3d::myClass::)(const gpu3d::valueCache&, const gpu3d::valueCache&)’ does not match
‘bool (gpu3d::myClass::*)(const gpu3d::valueCache&, const gpu3d::valueCache&)’
有什么想法我可以解决这个问题吗?
最佳答案
声明sortByIndex
static
,因为您不能将非静态成员函数传递给std::sort
。