这是我的困境:我真的很喜欢lambda,并且一直在使用Boost.Fusion和Phoenix.它们非常成熟,可以很好地兼顾许多编译器.
C++ 11 lambdas怎么样?它们非常好用,然后更容易使用,然后提升替代品(没有更多的仿函数!).最近的ICC和GCC编译器支持它们.但是仍然有很多ICC 9.x和GCC 4.1及以下系统,更不用说XL和Sun编译器了.这些编译器是否提供lambda支持?
我倾向于认为也许我应该等待使用C++ 11功能,以免旧系统拒绝代码.你怎么看?等到较旧的编译器逐渐消失或者只是这样做?
Jam*_*lis 13
您是否需要能够使用不支持C++ 11 lambdas的编译器编译代码?
如果是这样,那么你就不能使用它们(显然).否则,没有太多理由不使用它们.
在C++ 11中对lambda表达式的规范几乎没有变化,因此现在使用它们几乎没有风险.当然会偶尔出现编译器错误,但大多数情况下这些错误很少.
我所知道的唯一与lambda相关的主要特性是支持lambda表达式的多个编译器的最新版本不支持,这是去年三月添加的一个,它允许无捕获的lambda被隐式转换为函数指针.Visual C++ 2010和Intel C++ 11.1不支持(我没有更高版本的英特尔C++用于测试,对不起).但是,Visual C++ 11确实支持隐式转换.
| 归档时间: |
|
| 查看次数: |
557 次 |
| 最近记录: |