Boost logo

Boost Users :

Subject: Re: [Boost-users] Code stopped compile after migrating 1.42->1.45
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2010-12-07 18:51:59


AMDG

On 12/7/2010 6:40 AM, Pavel Pervov wrote:
> I'm compiling my codebase with Microsoft Visual C++ 8/9 (Visual Studio
> 2005/2008)
>
> Here is an example code which I've crafted from what I have in my
> codebase:
> //------- code start --------------------------------
> #include<algorithm>
> #include<map>
> #include<string>
> #include<iostream>
>
> #include<boost/lambda/lambda.hpp>
> #include<boost/lambda/bind.hpp>
>
> typedef std::map<int, int> MyMap;
>
> std::ostream& operator<< (std::ostream& outs, const MyMap& a)
> {
> std::for_each(a.begin(), a.end(),
> outs<< boost::lambda::bind(&A::value_type::second,
> boost::lambda::_1)<< "\n");
> return outs;
> }
>
> int main()
> {
> MyMap a;
> std::cout<< a;
> }
> //------- code end ---------------------------------
>
> This code stopped compiling after I've migrated from boost version 1.42 to
> version 1.45.
>
> Any ideas would be appreciated.

It looks like there's a bug in the return type deduction.
Can you file a ticket at http://svn.boost.org/? I'll try
to deal with it as soon as I can. You can work around
the problem using boost::lambda::ret.

In Christ,
Steven Watanabe


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net