C++ 无法编译boost堆d_ary_堆

C++ 无法编译boost堆d_ary_堆,c++,boost,C++,Boost,我是个新手。我正在尝试使用d_ary_heap。以下是程序片段: #include "boost/heap/d_ary_heap.hpp" #include "boost/heap/priority_queue.hpp" using namespace boost; class c { public: c(size_t count) : _count(count) {} size_t count() const { return _count; } bool op

我是个新手。我正在尝试使用d_ary_heap。以下是程序片段:

#include "boost/heap/d_ary_heap.hpp"

#include "boost/heap/priority_queue.hpp"

using namespace boost;

class c {

public:
    c(size_t count) : _count(count) {}
    size_t count() const { return _count; }
    bool operator < (const c& rhs) const { return count() < rhs.count(); }
    bool operator == (const c& rhs) const { return count() == rhs.count(); }


private:
  size_t _count;

};

int main()
{
  heap::d_ary_heap<c, heap::arity<2>> pq;
  //heap::priority_queue<c> pq;  // This works

  c s1(10);
  pq.push(s1);

  c s2(20);
  pq.push(s2);

  assert(pq.top() == s2);
  return 0;
}
感谢您的帮助。
在Include heap::arity之后包含空格:

heap::d_ary_heap pq;
编译器将>>视为运算符,而不是d\u-ary\u堆的模板声明的一部分

queue.cc: In function 'int main()':
queue.cc:24:44: error: 'pq' was not declared in this scope
queue.cc:24:44: error: template argument 1 is invalid
queue.cc:24:34: error: template argument 2 is invalid
heap::d_ary_heap<c, heap::arity<2> > pq;