Boost logo

Boost Users :

Subject: Re: [Boost-users] [graph][spirit][variant] Boost.Graph and Boost.Spirit incompatible ?
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2010-03-04 15:49:49


AMDG

Jeremiah Willcock wrote:
> There are a lot of BGL overloads of get; it is intended to be found by
> ADL, and there's (at least) one definition for each graph type. The
> graph library's get has been around for a while. It is not globally
> reserved, at least not technically; it only applies to known graph and
> property map types, just like variant's. The problem is that
> variant's get takes explicit template arguments and that seems to make
> the overloading work incorrectly. I suspect that the error in this
> thread, for example, is coming from the boost::get version for
> two_bit_color_map; that function is restricted to work on only that
> property map type but instantiating its signature appears to be
> failing without SFINAE because of the explicit template argument.

SFINAE doesn't apply for this overload of get.

> I think this is something that's fixed in C++0x but that doesn't help
> us now. Your workaround might fix the common cases though (since the
> compiler seems to differentiate functions based on the number of
> template arguments given); for some reason, the extra template
> argument in ::key_type is important in that definition of get. It
> will be annoying to have to work around this issue repeatedly, though.

Property maps that use put_get_helper seem to be okay.

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