Michael Caisse wrote:
I'm not opposed to using the vendor version but I think we need to provide control so that when something breaks for the user they can move back to the Boost version.
A compiler-provided std::is_something breaking uses of boost::is_something (with the latter implemented in terms of the former) is not any different from a compiler bug breaking uses of boost::is_something (implemented independently of std::is_something). The effects and the mitigations are the same in both cases. Either way, I think that the more important effect of Beman's suggestion is not that the trait may pick up the std one's bugs, but that users of the trait will no longer be allowed to depend on Boost-specific parts of the interface that are not present in the std trait, such as an mpl::bool_ base class.