On Thu, Aug 23, 2018 at 12:57 AM, Peter Dimov via Boost
John Maddock wrote:
So radical suggestion - does type_traits just belong in core and lets be done with it? What would happen to the file history if we moved it (can I still "git blame")?
That would be overkill. We could just allow use of type_traits in core. This will create a dependency cycle though, we need to get rid of the enable_if/noncopyable dependencies first.
Move enable_if to type traits? For noncopyable, we could convert its detection from is_base_and_derived to a dispatch based on SFINAE. // Boost.Core class noncopyable { public: typedef void _is_boost_noncopyable; }; // Boost.TypeTraits template< typename T, typename = void > struct is_boost_noncopyable : false_type {}; template< typename T > struct is_boost_noncopyable< T, typename T::_is_boost_noncopyable > : true_type {};