【发布时间】:2011-08-15 22:13:37
【问题描述】:
我今天在探索 C++0x,遇到了新的 lambda 特性。我的问题是这些与blocks 有何不同(在使用方面),为什么有人会更喜欢其中一个?
谢谢。
【问题讨论】:
-
我更喜欢 lambda,因为它们是标准的,因此可以在符合最新标准的编译器之间移植,并且可以轻松地与标准库一起使用。
-
@Matteo:块也是如此——在 Objective C 中
-
@Vlad:在 Objective C 中你没有 lambda,所以“在两个选项之间进行选择”是没有意义的——因为只有块可用。您“可能更喜欢其中一个”的唯一情况是您可以选择,即在 C++ 中使用 Clang(我所知道的唯一支持两者的编译器),在这种情况下我会使用 lambdas(除非你有一些复杂的C++/Objective C 混合项目,但我不是这种情况的专家)。
-
块不只是 Objective-c 我已经在 Ubuntu 上用 Clang 和 llvm 的用于 Block_copy 和 Block_release 的 compiler-rt 库使用它们
-
@newacct:Apple 的 Objective C 方言不是 de facto 标准吗?
标签: c++ lambda c++11 objective-c-blocks