Boost logo

Proto :

Subject: Re: [proto] [Spirit-devel] [Spirit Development] Bug in today's boost_trunk -- ambiguous operator >
From: Eric Niebler (eric_at_[hidden])
Date: 2010-12-24 21:52:30


On 12/24/2010 1:57 PM, Hartmut Kaiser wrote:
>> Just because a type is a Fusion sequence, that doesn't mean it has
>> boost::fusion as an associated namespace. I'm asking why
>> boost::fusion::operator< is in the overload set.
>
> Ohh, sorry, I misunderstood. That's a good question indeed. However, I have
> no answer, yet.

I know why:

    template <
        typename Iterator
      , typename T1 = unused_type
      , typename T2 = unused_type
      , typename T3 = unused_type
      , typename T4 = unused_type
>
    struct rule

And in support/unused.hpp:

    using boost::fusion::unused_type;

Your use of fusion::unused_type is making boost::fusion an associated
namespace of qi::rule. I suggest eliminating this needless reuse, or
else use an ADL barrier namespace around Fusion's unused_type definition.

-- 
Eric Niebler
BoostPro Computing
http://www.boostpro.com

Proto list run by eric at boostpro.com