【发布时间】:2013-07-15 09:54:06
【问题描述】:
所以我理解在 C# 中使用 var 是有意义的,因为您有编译器派生的匿名类型。 C++ 似乎没有这个特性(除非我错了),那么有一个auto 关键字有什么意义呢?
(有点酷,与 C# 不同,auto 确实适用于成员/全局变量,我想这很酷,但似乎不足以证明它的存在)。
【问题讨论】:
-
我不会使用“编译器派生的匿名类型”来描述
var,而是为开发人员消除冗余/痛苦的*类型声明。 *请参阅 LINQ 编辑:哦,等等,是的,您可以将它用于匿名类型。不理我。 :) -
这确实是您有唯一一次使用
var。当结果为匿名时,您只需要在 LINQ 表达式中使用var。 -
C++ lambdas 是匿名类型,很像 C# lambdas。在这种情况下,
auto和std::function的用途分别与var和Func相同。 -
C++ lambdas are of anonymous types, much like C# lambdas.这是一个很好的观点。不久前我遇到过。 -
GCC 和 Clang 对 C++11 的支持比 MSVC 好很多。