最近,我对VC2010中对lambda的支持感到非常兴奋。我慢慢地开始领会这个功能在将C++转换成更好的东西方面所具有的全部潜力。
但后来我意识到,这种潜力在很大程度上取决于日常库中对lambda的主流支持,比如boost和QT。
有没有人知道是否有计划用C++0x的新特性来扩展这些库?
lambda实际上取代了对boost::lambda以及boost中与之交互的所有东西的需求。QT可以在其所有容器中添加对lambda的支持,甚至可以将其作为定义SLOT的另一种方式。
发布于 2009-08-03 17:20:38
Lambda已经很好地适应了现有的库--只要一个函数接受一个由模板参数给出的类型的函数对象。
这是它们最棒的地方之一--它们是语言特性的一个经典例子,它将现有的实践整理成一种巧妙的语法。
显然,boost lambda库变得多余了,但这意味着它不需要添加任何新功能。
发布于 2009-08-03 17:27:52
我不明白lambda的使用如何依赖于库的支持。Lambda消除了创建许多类的需要,仅仅是为了包装不同的小算法,并与其他语言/库功能整齐地结合在一起(想到了std::function)。无论您用来传递函数对象还是函数指针,都可以使用lambdas。
因此,他们主要添加了另一种使用现有代码和库的替代方案。我认为库更好地支持lambda的唯一方法是使用更多的函数式方法。
发布于 2009-08-03 17:09:04
这样的库可能会等到有适当的编译器支持相关的C++0x特性,而不是在主流编译器支持它之前对其进行太多的麻烦。不要屏住呼吸。
https://stackoverflow.com/questions/1223297
复制相似问题