相关疑难解决方法(0)

你对typedef'ing shared_ptr的约定是什么?

我在typedef的boost :: shared_ptr模板的命名约定之间翻转.例如:

typedef boost::shared_ptr<Foo> FooPtr;
Run Code Online (Sandbox Code Playgroud)

在制定一项公约之前,我想看看其他人使用什么.你的约定是什么?

编辑:

对于那些在Foo中嵌入typedef的人来说,Foo现在"意识到"它将如何被传递并不会让你烦恼吗?它似乎打破了封装.这个怎么样:

class Foo
{
public:
    typedef std::vector<Foo> Vector
};
Run Code Online (Sandbox Code Playgroud)

你现在不会这样做,对吗?:-)

c++ boost naming-conventions shared-ptr

46
推荐指数
4
解决办法
2万
查看次数

如何使用C++中的共享指针更容易

我正忙着设计一个新的C++应用程序.在这个应用程序中,我想用指针最小化潜在的错误,并且由于应用程序应该是普通的C++(没有.Net或其他奇特的东西),我正在调查共享指针,我正在考虑在任何地方使用共享指针(而不是普通的指针).

我制定了一些技巧,以便更容易使用共享指针,例如:在类中使用typedef,如下所示:

class X
   {
   public:
      ...
      typedef std::shared_ptr<X> Ptr;
   };
Run Code Online (Sandbox Code Playgroud)

这样你就可以轻松编写X :: Ptr,它比"std :: shared_ptr"更容易编写.

我还注意到共享指针的一些缺点:

  • 无处不在我使用我需要包含的共享指针 <memory>
  • 如果我只想使用指针,我就不能再使用前向声明了

还有其他技巧可以让共享指针更容易使用吗?

c++ visual-studio-2010 shared-ptr c++11

1
推荐指数
1
解决办法
871
查看次数