
On 10/08/12 23:57, Jeffrey Lee Hellrung, Jr. wrote:
On Wed, Aug 8, 2012 at 8:59 PM, John Bytheway <jbytheway+boost@gmail.com>wrote: <snip>
Reading the docs for boost::is_convertible I think the clang interpretation is closer to the intention, in which case the gcc implementation is wrong, and so is Boost.Parameter (which relies on this behaviour).
On the other hand, I suspect there's probably other code out there that depends on this in a similar way to Boost.Parameter,
Well, *technically*, such other code would be depending on an *implementation*, let's say, "feature", that is, according to your reading, undocumented.
Indeed. It would be nice, however, to have a clearer indication of what exactly the intended behaviour is. However this is resolved, I guess the docs should be cleaned up too.
so perhaps it would be safer to tweak the clang implementation instead, and deviate from std::is_convertible.
Other code aside, I believe the correct thing to do would be to put the gcc implementation more in line with the clang, std, and Boost-documented behavior. Maybe make the change to the gcc implementation and see what fails within Boost first?
Sounds reasonable. I'll see if I can at least run the type_traits tests and see what happens. John