Проблема с boost :: intrusive_ptr - PullRequest
       22

Проблема с boost :: intrusive_ptr

0 голосов
/ 04 августа 2011

Существует структура, которая содержит поле intrusive_ptr:

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

Есть еще одна переменная, которая определяется как

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

Теперь я создал объект

BranchFeedback theFeedback;

и хотите присвоить theFetchState этому полю

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

Однако компилятор сообщает об ошибках

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

Как я могу это исправить?

1 Ответ

1 голос
/ 04 августа 2011

вы передаете BPredState, но intrusive_ptr поддерживает только operator = для указателей на содержащийся тип (или другие intrusive_ptrs)

, поэтому вы можете написать theBPState = & (theFetchState [anIndex] [anOne]!);или получите указатель или итератор на элемент и используйте его вместо этого.

...