C++:使用 auto 还是 typedef?

发布于 2025-01-06 09:44:01 字数 1459 浏览 1 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

べ繥欢鉨o。 2025-01-13 09:44:01

一般来说,auto 让您的生活变得更加轻松。

如果您不使用任何深奥的架构(并且没有计划很快这样做),那么答案应该是“尽可能使用自动”。

In general, auto makes your life a lot easier.

If you aren't shipping on any esoteric architectures (and have no plans to do so anytime soon), the answer should be "use auto whenever you can".

把回忆走一遍 2025-01-13 09:44:01

我想您需要定义您可能需要的所有变体。

让您的伙伴观看 Bjarne Stoustrup 的演示并阅读一些 C++11 博客。至于模板,购买书单上的一些书,然后“巧合”地将其中一些放在你的桌子上以开始讨论。

您甚至可以编写一些 Powerpoint 演示文稿,并将其呈现给您的团队成员并建立研究文化。

Bjarne Stroustrup:C++11 风格

图书清单:https://stackoverflow.com/tags/c%2b%2b/info

I guess you need to define all variations you might need.

Get your guys to see the presentaion from Bjarne Stoustrup and read some of the blogs in C++11. As for templates buy some of the books on the book list and "coincedentially" drop some of them on your desk to start the discussion.

You can even write a few powerpoint presentions, and present them to your team members and build up a culture of research.

Bjarne Stroustrup: C++11 Style

book list: https://stackoverflow.com/tags/c%2b%2b/info

回眸一笑 2025-01-13 09:44:01

我必须为每个 const 和非 const 类型定义额外的 typedef

...这将导致组合爆炸,因为类型中适合 const 的位置数量增加。向你的同事解释,你正在做的工作量成倍增加,因为他们正在与语言作斗争而不是使用它。是的,在适当的时候使用auto

I'd have to define extra typedefs for each const and non const type

... which will cause a combinatorial blowup as the number of places where a const fits in the type increases. Explain to your colleagues that the amount of work you're doing increases exponentially because they're fighting the language instead of using it. And yes, use auto when appropriate.

煞人兵器 2025-01-13 09:44:01

当我创建一个新类时,我做的第一件事就是:

class MyClass
{
public: // Typedefs
    typedef std::shared_ptr<MyClass> Ptr;
    typedef std::shared_ptr<const MyClass> ConstPtr;
};

然后我的类的用户可以像这样使用它:

MyClass::Ptr pMyClass = std::make_shared<MyClass>();

我将它们作为公共 typedef 添加到类中的原因是我讨厌污染全局名称空间。

When I create a new class one of the first things I do is:

class MyClass
{
public: // Typedefs
    typedef std::shared_ptr<MyClass> Ptr;
    typedef std::shared_ptr<const MyClass> ConstPtr;
};

Then user's of my class can use it like:

MyClass::Ptr pMyClass = std::make_shared<MyClass>();

The reason I add them to the class as public typedefs is I hate to pollute the global namespace.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文