我发现了一个简单的代码:“cout <<(_ 1 * 3)”是什么意思?
using namespace boost::lambda;
typedef std::istream_iterator<int> in;
std::for_each(
in(std::cin), in(), std::cout << (_1 * 3) << " ");
,我发现_1
用于表示每个输入整数,但如何做到这一点_1
工作?有谁知道?
PS: 此代码来自BOOST的第一个示例。当我运行该文件时,我发现for_each永远不会终止,并且在每次“返回”单击之后它都会保留读取的数字。任何想法为什么会发生?
这不是标准的库占位符。此占位符被Boost.Lambda用于在将它们添加到C++ 11中的语言之前创建lambda表达式。 – Simple
@简单,真实,但我不知道OP在使用boost时正在回答:P另一个答案包含提升文档的链接。 – SingerOfTheFall