boost的scoped_ptr使用的第一個策略:禁止復制
:)
是不相悖,呵呵,因為我看到后面講自己實現成對的placement new/delete時強調了這由語言實現本身保證,所以順帶說明一下。好象是item 52。
// 這一類不再聲明復制構造器和賦值運算符。
這句話蠻重要,呵呵
std::tr1::shared_ptr<Widget> pw(new Widget);
這一句應該是exception-safe的,我寫了代碼測試過。
class Test
{
public:
Test() {
// Test對象內存在調用ctor前已分配.
throw bad_alloc();
std::cout<<"Test()"<<endl;
};
~Test() { cout<<"~Test()"<<endl; };
private:
unsigned char buf[4096];
};
std::tr1::shared_ptr<Test> pTest(new Test());
不會導致Test對象內存泄露.
// Perform Double-Checked Locking Optimization.
以前看代碼的時候沒注意,看你文章聽到你重點提了提,偶看了看DC-Locking.pdf, 有所收獲。多謝
呵呵,是說呢。寫得不錯,繼續努力~ 偶會一直關注~
暈S,看得頭大,建議看榮耀在c++大會上的演講PPT《C++模板元編程技術與應用》,那個容易理解一些。
不是嚴格按照effective c++的那些item順序來翻譯的吧~
是說怎么不對應呢