2012-11-13 97 views
1

嘗試todo一個簡單的shared_ptr矢量和崩潰?我懷疑我正在做一些明顯錯誤的事情?BOOST_FOREACH崩潰boost :: shared_ptr?

std::vector< shared_ptr<SUBCLASS> > m_vecSections; 

shared_ptr<SUBCLASS> hoodSection; 
BOOST_FOREACH(hoodSection, m_vecSections){ 
    //do something 
} 

我得到的

void add_ref_copy() 
{ 
    atomic_increment(&use_count_); 
} 
+1

你有repros問題,我們可以看一個小的測試案例/編譯? – Caribou

+0

SUBCLASS上的規則3,也許?您的FOREACH將調用複製構造函數... – Roddy

+0

識別的代碼中沒有任何內容可能會導致崩潰。請發佈一個仍然存在問題的最小代碼示例...如果您真的希望得到答案。請注意,您可以使用'BOOST_FOREACH(std :: shared_ptr const&hoodSection,m_vecSections)'來避免複製問題,但它不完全等效。 –

回答

0

三江源傢伙

你的機會都沒有找到它,像這樣的電話...

的weak_ptr weakHood(shared_ptr的(本));

發佈m_vecSections並導致崩潰......

0

崩潰,我認爲你的語法應該是:

BOOST_FOREACH(shared_ptr<SUBCLASS> hoodSection , m_vecSections){ 
    //do something 
} 
+0

無關緊要。 [填充] –

相關問題