【发布时间】:2011-04-12 12:40:44
【问题描述】:
我想在 C++0x 中使用 lambda 和 for each(基于范围的 for 循环,而不是 STL for_each)。所以我去了 wiki 并尝试使用 lambdas 重写 wiki 中的示例:
std::vector<int> some_list;
some_list.push_back(42);
some_list.push_back(37);
int total = 0;
int value = 5;
for(int& x:some_list)
{
[](int x)
{
cout << "xL=" <<x <<endl;
};
}
for(auto x:some_list)
cout<< "x="<<x<<endl;
return result;
}
问题是我在 lambda 版本中看不到任何 cout,因为每个版本都很好地打印 x...我认为不可能将每个版本和 lambdas 混合在一起,因为 lambdas 只能代替 "函数”,不能作为循环体,但我不确定,所以如果有人能确认它会很酷
编译器:GCC 4.6
【问题讨论】:
-
请向我们展示完整的源代码。