tbb lambdar函数编译出错?

wanglei5695312 2010-01-05 10:56:36
tbb2.2应该支持lambdar函数吧,
parallel_for(blocked_range<int>(0, num_steps, 5000),
[] (const blocked_range<int> &r) {
for (int i = r.begin(); i != r.end(); ++i){
x = (i + 0.5)*step;
sum = sum + 4.0/(1. + x*x);
}
tbb::spin_mutex::scoped_lock lock(myMutex);
pi += step *sum;
});
intel 编译器和vc++编译器怎么都是这个错误啊,请教了?我是在vs2005下
error: expected an expression [] (const blocked_range<int> &r) {
怎么有的书上说应该是
<> (const blocked_range<int> &r) {
lambdar函数应该是[]还是<>啊?
...全文
127 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanglei5695312 2010-01-06
  • 打赏
  • 举报
回复
我只装了Intel C++ Compiler, 版本11.0,还要配置环境吗(打开Project->右键选Intel Parallel Composer-> Select Build Components-> 选上“Use TBB”。就可以了)我没装composer,所以没有这个选项啊?
intel_zhenyuwang 2010-01-06
  • 打赏
  • 举报
回复
当然应该是 “[] (const blocked_range <int> &r) {”

我这边是VS2008,以前是VS2005。这不是主要的,TBB 2.2 是支持Lambda的。 因为我用的是Intel Parallel Composer (含Intel C++ Compiler, 版本11.0以上)

另外要注意环境设置,打开Project->右键选Intel Parallel Composer-> Select Build Components-> 选上“Use TBB”。就可以了

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧