boost :: intrusive_ptr的问题

时间:2011-08-04 08:47:07

标签: boost vector assign

有一个包含intrusive_ptr字段的结构:

struct BranchFeedback : boost::counted_base {
  ...
  boost::intrusive_ptr<BPredState> theBPState;
};

还有另一个varibale定义为

std::vector< std::vector< BPredState > >           theFetchState;

现在我已经实例化了一个对象

BranchFeedback theFeedback;

并希望将thisFetchState分配给该字段

theFeedback.theBPState = theFetchState[anIndex][!anOne];

然而编译器说了一些错误

error: no match for ‘operator=’ in theFeedback.theBPState = .....

我该如何解决?

1 个答案:

答案 0 :(得分:1)

你传入的是BPredState,但是intrusive_ptr只支持operator =指向包含类型(或其他intrusive_ptrs)的指针

所以你可以写出BBet =&amp;(theFetchState [anIndex] [!anOne]);或者获取元素的指针或迭代器并使用它。