По какой-то причине я не могу использовать 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
).