由于某种原因,我无法boost::format
在boost::lambda
. 这是我的代码的(希望)可编译的简化:
#include <algorithm>
#include <iomanip>
#include <iostream>
#include <boost/assign/list_of.hpp>
#include <boost/format.hpp>
#include <boost/lambda/lambda.hpp>
namespace bl = boost::lambda;
int main()
{
const std::vector<int> v = boost::assign::list_of(1)(2)(3);
std::for_each(v.begin(), v.end(), bl::var(std::cout) << std::setw(10) << bl::_1);
std::for_each(v.begin(), v.end(), bl::var(std::cout) << boost::format("%10d") % bl::_1);
}
- 第一个
std::for_each
产生预期的输出 - 第二个
std::for_each
只输出没有任何数字的空格
这是为什么 ?我真的不熟悉,boost::lambda
所以我可能在这里遗漏了明显的东西。
请不要提出std::copy
基于答案的建议:我的实际代码不起作用std::vector
但在boost::fusion::vector
(std::for_each
实际上是boost::fusion::for_each
)。