ftofficer同学

这两天看effective c++ 3rd edition,里面很多例子都用std::tr1,特别是shared_ptr。似乎不用不行似的。比如返回一个指针变量,建议是封装到智能指针里面。可是这么一来岂不到处都是shared_ptr xxxx?也许安全性高了一截,可怎么总觉得程序代码也臃肿了一截(当然,不用操心释放问题也会减少代码)?可读性也降低了一些。另外一个问题是,如果用的第三方类库都是用的原始指针,混来混去岂不是乱七八糟?如果所有代码都推荐shared_ptr,那把garbage collection特性做到c++里面岂不是更好?如果不是,那么c++就有多种创建指针的方法,什么时候用这个,什么时候用那个呢?另外,如果自己写的类库用boost,岂不是强求使用这个类库的其他人也得熟悉boost才行?想来想去还不是很敢用。

Advertisements

One thought on “ftofficer同学

  1. 我同意如你所说。

    Effective C++ 3rd我觉得过于激进了。tr1的很多东西,尤其是shared_ptr,因为设计为非侵入式的引用计数指针,所以存在很大的互操作问题。基本上一个系统当中要么全是shared_ptr,要么完全没有。

    我还是建议boost用一下其中的功能性类库,比如图算法,string算法等等。

    shared_ptr,thread等库,如果是一个全新的系统,也许可以作为基础架构使用,但是更多的时候,尤其是存在和老代码互操作的时候,必须很小心地使用,建议还是不用为妙。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s