何らかの理由でboost::lambda
にboost::format
を使用できません。boost :: lambdaでboost :: formatを使用する
#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
あります)。
うん、これは動作しますが、なぜそれが必要なのかわかりません! 'boost :: lambda :: var'はどちらの引数もラムダ式でない場合にのみ必要です。私は 'boost :: lambda'を使ってすてきで簡潔な構文を目指していました:(やや悪い – icecrime