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顺序来翻译的吧~
是说怎么不对应呢