Это мой код:
#include "btScalar.h"#include "btAlignedAllocator.h"#include "btAlignedObjectArray.h"
class Comparator
{
btAlignedObjectArray<int> items;
// Edit: this member function is to be called from within the comparator
int myReference()
{
return 0;
}
public:
Comparator()
{
items.push_back(5);
items.push_back(1);
items.push_back(3);
items.push_back(8);
}
int operator()(const int &a, const int &b) const
{
return a + myReference() < b;
}
void doSort()
{
items.quickSort(*this);
for (int i=0; i<items.size(); i++) {
printf("%d\n", items[i]);
}
}
};
int main()
{
Comparator myClass;
myClass.doSort();
printf("done!\n");
return 0;
}
Ошибка No matching function for call to object of type 'const Comparator'
в строках 345 и 347 в btAlignedObjectArray.h
Попробуй добавить const
на ваш operator()
int operator()(const int &a, const int &b) const
// ^^^^^
{
return a < b;
}
Кроме того, как вы уже захватили, myReference должен быть постоянным
int myReference() const
// ^^^^
Других решений пока нет …