【发布时间】:2014-10-24 09:13:32
【问题描述】:
C++ 大师 Herb Sutter 建议我们应该几乎总是使用“auto”。他在website 上声明了这一点,他最近在CppCon 2014 conference 上重复了这一点。
我试图听从他的建议,但我不相信。这里有人同意萨特的观点吗?谁能告诉我原因
auto gender = string{};
auto number = string{};
auto person = string{};
优于
string gender, number, person;
这是我最终在我的代码中编写的,因为我无法忍受 auto 样式。
编辑:
auto gender = string{}, number = string{}, person = string{};
也是一种可能,但在我看来,情况更糟。
【问题讨论】:
-
帮自己和其他人一个忙,用 std::string 代替 string。
-
在一行上声明多个变量通常也是不受欢迎的。
-
@hagubear 我是说这是令人毛骨悚然的扭曲逻辑。为什么会有人重新定位。有了这个逻辑,每个人都应该恢复到 c。如果我们坚持
c++89“以防万一”,也许c++ 委员会应该解散,因为他们工作的重点是什么。无论编译器是否为 c++11 编译器,我什至不会评论通过预处理将代码加倍的想法。 -
@oz1cz:是的,
auto被过度使用了。不,与 Herb Sutter 所说的相反,到处使用auto是没有好处的。 -
@hagubear "你不能指望每个人都能像那样切换!" - 确切地说,这就是为什么你首先做出(商业)决定预测您将/需要支持的标准,以及所有的利弊。 “我只是说采取措施并准备好支持一切。” - 这是错误的逻辑。从字面上看,要为所有事情做好准备是不可能的。做“以防万一”的事情会无缘无故地阻碍您的开发过程。技术限制和要求应该在第一行代码之前明确。