Boost logo

Boost Users :

Subject: Re: [Boost-users] [Phoenix][Range] What's wrong here...
From: Thomas Heller (thom.heller_at_[hidden])
Date: 2013-01-17 10:57:44


On 01/17/2013 04:33 PM, Thomas Heller wrote:
> On 01/17/2013 01:33 PM, Mathias Gaunard wrote:
>> On 17/01/13 13:22, Mathias Gaunard wrote:
>>> On 17/01/13 12:28, Robert Jones wrote:
>>>> Hi All
>>>>
>>>> Can anyone tell me what's wrong with this? The error message is so
>>>> huge
>>>> I'm a bit overwhelmed!
>>>
>>> Learn to read C++ errors.
>>>
>>> It says
>>> /home/mgaunard/dev/boost/trunk/boost/phoenix/core/actor.hpp:174:9:
>>> error: ‘typedef boost::proto::exprns_::basic_expr<...>::proto_tag’ is
>>> inaccessible
>>> /home/mgaunard/dev/boost/trunk/boost/proto/matches.hpp:834:16: error:
>>> within this context
>>>
>>> So it looks like a bug.
>>
>> I badly shortened the error message, the problem is with actor<
>> basic_expr<...> >::proto_tag of course.
>>
>> The problem doesn't occur with clang, only gcc, so it's most
>> definitely a bug.
> This is a *very* strange bug. Essentially this says that the typedef
> is not accessible because it is private. However, the actor template
> is declared as:
> template <typename Expr>
> struct actor
> {
> ....
> };
>
> no private there at all ... even if i add the "public:" explicitly it
> doesn't solve the problem. This needs further investigation.
Looks like a ADL problem. The error essentially comes from this line here:
       for (; __first != __last; ++__first)
---------------------^^
gcc seems to erronously try to call operator!= from the namespace
boost::proto::exprns_. And then, somehow, what should be a SFINAE error
turns into a hard error.
The quick fix here is to not include <boost/phoenix/operator.hpp>

I have no clue yet how to permanently fix this.
>
> Thanks for reporting,
>
> Thomas
>> _______________________________________________
>> Boost-users mailing list
>> Boost-users_at_[hidden]
>> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>


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