Subject: Re: [boost] [Polygon] "Ambiguous use of partial specialization" in CodeWarrior
From: Simonson, Lucanus J (lucanus.j.simonson_at_[hidden])
Date: 2010-01-11 15:49:17
Thomas Klimpel wrote:
> Kef Schecter wrote:
>> It doesn't help, I'm afraid. I get exactly the same errors -- no
>> more, no less.
> I'll take another shoot at this. I patched polygon_traits.hpp a
> little to require less SFINAE "power" from the compiler.
> So can you try the attached patch to polygon_traits.hpp, and add the
> line #define BOOST_VERY_LITTLE_SFINAE
> before the line that contains the include statement for polygon.hpp?
>From my reading of your patch you are selecting between the correct implementation of polygon_traits depending on the concept type of T without the use of SFINAE. It passes all my unit tests when BOOST_VERY_LITTLE_SFINAE is defined. It looks to me like I should just eliminate the #else clause and keep only your SFINAE-less compile time logic since it is feature complete and supported by more compilers. Also this eliminates the macro (and the need to document it.) Is there a reason you kept the SFINAE based code and used a macro to switch between the two other than to test your compile time logic against the original?
> As a side note, the latest revision of Boost.Polygon doesn't pass all
> regression tests on MSVC-9.0 (basically the "std::map" from "typedef
> std::map<half_edge, property_map, less_half_edge> scanline_type;"
> complains at runtime that "less_half_edge" implements an "invalid
> operator<"). The last revision that works for me is r58551, the first
> revisions that fails for me is r58795.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk