У меня странная проблема с std :: less.std :: less: ошибка C2661: 'std :: less <_Ty> :: less': никакая перегруженная функция не принимает 2 аргумента
indexedpriorityq.hpp(21): error C2661: 'std::less<_Ty>::less' : no overloaded function takes 2 arguments
1> with
1> [
1> _Ty=float
1> ]
Но разве это не то, что он должен делать?
Вот некоторые из моего кода:
template<class KeyType, class binary_predicate = std::less<KeyType> >
class IndexedPriorityQ
{
private:
typedef typename std::vector<KeyType> KEYLIST;
KEYLIST& m_Keys_V;
[...]
};
template<class KeyType, class binary_predicate>
void IndexedPriorityQ<KeyType, binary_predicate>::
ReorderUpwards(int size)
{
while((size>1) &&
(binary_predicate(m_Keys_V[m_Heap_V[size]], m_Keys_V[m_Heap_V[size/2]])) //breaks here
)
{
Swap(size/2, size);
size /= 2;
}
}
Что именно вызывает ошибку, и как я могу это исправить?
прав, спасибо :) – xcrypt