2011-08-04 98 views
0

有含有intrusive_ptr字段一個結構:問題的升壓:: intrusive_ptr

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

存在被作爲

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

現在我已經實例化的對象

BranchFeedback theFeedback; 
定義的另一varibale

並且想要將該狀態分配給該字段

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

但是編譯器說,有些錯誤

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

我怎樣才能解決呢?

回答

1

你傳遞一個BPredState,但intrusive_ptr只支持運營商爲=指針所包含的類型(或其他intrusive_ptrs)

,所以你可以寫theBPState = &(theFetchState [anIndex處] [!環己酮]) ;或者獲取指向元素的指針或迭代器並使用它。

+0

感謝您的回答 – mahmood