
The following piece of code works fine with MSVC 9.0 but fails with Gcc-4.4.2. Compiler throws lot of error messages due to the for_each call. I'm unable to figure out the exact problem ================== #include <vector> #include <string> #include <iostream> #include <sstream> using namespace std ; #include <boost/spirit/include/phoenix.hpp> namespace phx = boost::phoenix ; namespace pha = phx::arg_names ; #include <boost/iterator/zip_iterator.hpp> #include <boost/assign.hpp> using namespace boost::assign ; void updateOut (const boost::tuple<const string&, const int&>& p_tuple, vector<string>& p_out) { ostringstream os ; os << p_tuple.get<0>() << '-' << p_tuple.get<1>(); p_out += os.str() ; } int main (void) { vector<string> vs, out ; vector<int> vi, vi2 ; vs += "String", "String", "String", "String", "String"; vi += 1,2,3,4,5 ; vector<string>::const_iterator sbegIter = vs.begin(); vector<string>::const_iterator sendIter = vs.end(); vector<int>::const_iterator ibegIter = vi.begin(); vector<int>::const_iterator iendIter = vi.end(); std::for_each ( boost::make_zip_iterator(boost::make_tuple(sbegIter, ibegIter)), boost::make_zip_iterator(boost::make_tuple(sendIter, iendIter)), phx::bind (&updateOut, pha::arg1, phx::ref(out)) ) ; } ============ I'm using Boost-1.42.0 What is wrong with for_each call ? Thanks in advance, Surya