我在 typedef
的命名约定之间来回切换 boost::shared_ptr
模板。例如:
typedef boost::shared_ptr<Foo> FooPtr;
在确定约定之前,我想看看其他人使用什么。你的约定是什么?
编辑:
对于那些在 typedef
Foo
人来说, Foo
现在“知道”它是如何被传递的,你不会感到困扰吗?它似乎打破了封装。这个怎么样:
class Foo
{
public:
typedef std::vector<Foo> Vector;
};
你现在不会这样做,对吗? :-)
原文由 Emile Cormier 发布,翻译遵循 CC BY-SA 4.0 许可协议
我也想为这个老问题添加一些选项,即使它们可能会引起很大争议……
与 OldPeculier 的回答 类似,我喜欢尽可能接近标准指针的短类型名称。
在几乎所有地方都使用了
shared_pointer
的项目中,我使用了我利用了三件事:
Foo* myFoo1;
而不是Foo *myFoo1;
有几个原因,它与Foo_ myFoo2
很好地匹配。当需要不同类型的智能指针的 typedef 时,我会选择
随着标准和编译器实现中对 Unicode 支持的增加,我很想尝试以下语法,假设这些星号将被视为类型标识符的常规部分。当然,这只有在所有相关的开发人员都有一个方便的文本输入法时才实用:
(快速测试表明这实际上不起作用,至少在我的构建环境中是这样。但
Foo_ä
也是如此。)