किसी कारण से, मैं 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
केवल आउटपुट किसी भी संख्या
कि क्यों है बिना व्हाइटस्पेस: यहाँ एक (उम्मीद) मेरे कोड का compilable सरलीकरण है? मैं वास्तव में boost::lambda
से परिचित नहीं हूं इसलिए मुझे यहां स्पष्ट रूप से याद आ रही है।
कृपया सुझाव नहीं देते std::copy
आधारित जवाब: मेरी वास्तविक कोड std::vector
पर लेकिन boost::fusion::vector
पर काम नहीं करता है (और std::for_each
तथ्य एक boost::fusion::for_each
में है)।
हाँ, यह काम करता है, लेकिन मुझे नहीं पता कि यह क्यों जरूरी है! 'boost :: lambda :: var' केवल तभी जरूरी हो जब न तो तर्क लैम्ब्डा अभिव्यक्ति हो। मैं 'बूस्ट :: लैम्ब्डा' का उपयोग करके एक अच्छा और संक्षिप्त वाक्यविन्यास का लक्ष्य रख रहा था :(बहुत बुरा – icecrime