1. 程式人生 > >boost相關小知識(長期頂置更新)

boost相關小知識(長期頂置更新)

2.boost throw_exception unresolved

在專案中(windows VS環境)增加了一些boost庫,導致一個連結報錯,

throw_exception unresolved (link error)

可以修改vs的工程屬性,/EH 和 /GX屬性

修改方法見:

1.boost::noncopyable

nonycopyable是一個可以通過繼承來防止你自己的類拷貝構造或者拷貝賦值的類。有些複雜物件,並沒有明確的拷貝構造/拷貝賦值函式,當你使用隱性的拷貝構造/拷貝賦值時,可能會出現一些不必要的bug。

boost::noncopyable將構造和解構函式設定為protected,子類可以呼叫,使得子類呼叫預設建構函式時不至於編譯不過。將拷貝構造/拷貝賦值函式設定為private,子類沒有定義自己的拷貝構造/拷貝賦值函式時,是無法拷貝構造和等號賦值的。

一般都是私有繼承的:

class my_class : private boost::noncopyable

PS:也有用public繼承的,這個其實就是繼承的特性了。而noncopyable主要是防止拷貝構造/賦值,所以private繼承和public繼承差別不是很大。stackoverflow上也是如是說。

// to be continued