我想减少代码中的一些视觉噪音,并隐藏shared_ptr在这样的typedef后面:
typedef boost::shared_ptr<SomeLongClass> SomeLongClassPtr;
Run Code Online (Sandbox Code Playgroud)
所以这:
void foo(const boost::shared_ptr<SomeLongClass>& a,
boost::shared_ptr<SomeLongClass>& b);
Run Code Online (Sandbox Code Playgroud)
成为这个:
void foo(const SomeLongClassPtr& a, SomeLongClassPtr& b);
Run Code Online (Sandbox Code Playgroud)
另一方面,我担心我会减少代码的显式性.
哪个是更好的风格?
Jus*_*Boo 14
鉴于std :: string本身就是一个typedef,我认为你很好.我自己做.
甚至Scott Meyers建议使用typedef来方便您阅读代码.
编辑:有效的C++,第二版,第120页,第28项,第四段."...提供typedef,消除了需求......"
更有效的C++,第7版,第237页,第31项第1段.
更有效的C++,第7版,第238页,第31项代码示例后的第一段.
从本质上讲,不用担心.:-)
我们TypePtr在shared_ptr<Type>对象代码中使用typedef .拥有一个TypeConstPtrfor 也很有用shared_ptr<const Type>.