我不想在这里问一个故意主观的问题,但我没有其他人直接问这个问题……
我正在尝试在我编写的新代码中采用更现代的C++概念,从而在我的团队中“以身作则”。我的同事有点回避模板,他们抱怨在使用我最近创建的一些类时,必须输入unique_ptr<Foobar>或shared_ptr<Foobar>而不是Foobar* (工厂方法返回unique_ptr,我使用shared_ptr将这些对象的列表存储在向量中)。
他们逼迫我,说服我把这些代码定义成更容易输入的东西,比如FoobarUniquePtr。
但是现在我在使用这些typedefs时遇到了一团糟的常量正确性。我必须为每个常量和非常量类型定义额外的typedefs,而const const_FoobarUniquePtr似乎不能正确地表达常量语义。
那么,对于我的问题,当我的队友抱怨不得不键入模板智能指针时,停止使用这些typedefs,转而将auto推向他们,这有意义吗?我也对其他选择持开放态度。
发布于 2012-02-16 21:55:33
一般来说,auto会让你的生活变得更轻松。
如果你没有在任何深奥的架构上发布(短期内也没有这样做的计划),答案应该是“只要有可能就使用auto”。
发布于 2012-02-16 22:17:55
我想你需要定义你可能需要的所有变体。
让你的人看看Bjarne Stoustrup的演讲,并阅读C++11的一些博客。至于模板,买一些书单上的书,然后“同时”把它们放在你的办公桌上,开始讨论。
您甚至可以编写一些powerpoint演示文稿,并将它们展示给您的团队成员,从而建立一种研究文化。
Bjarne Stroustrup: C++11 Style
发布于 2012-02-16 22:21:47
我必须为每个常量和非常量类型定义额外的typedefs
..。随着const在类型中适合的位置的数量增加,这将导致组合井喷。向你的同事解释,你正在做的工作量呈指数增长,因为他们正在与语言作斗争,而不是使用它。是的,在适当的时候使用auto。
https://stackoverflow.com/questions/9312416
复制相似问题