14 Jun
2014
14 Jun
'14
12:12 a.m.
Eric Niebler wrote:
Whether the base classes are a mistake or not, they're a fact. And without changing std::integral_constant, we cannot make type traits as you describe them play nicely with code that dispatches to std::true_type/std::false_type.
I don't see why code that uses a Boost type trait should dispatch to std::true_type and expect that to work. Dispatch to std::true_type makes sense when using an std:: type trait. When using a Boost type trait, dispatch to boost::true_type seems the most logical approach. Removing the base classes of the existing Boost type traits is obviously a breaking change, of course.