For MSVC2017 use detector_t, instead of make_void.

(Not using boost::void_t to workaround a VC12 defect)
This commit is contained in:
Glen Fernandes
2018-02-06 19:41:13 -05:00
parent 6d294b5ff2
commit b406b574a5

View File

@ -16,6 +16,9 @@ or copy at http://www.boost.org/LICENSE_1_0.txt)
namespace boost {
namespace detail {
template<class T>
using detector_t = typename boost::make_void<T>::type;
template<class Default, class, template<class...> class, class...>
struct detector {
using value_t = boost::false_type;
@ -23,8 +26,7 @@ struct detector {
};
template<class Default, template<class...> class Op, class... Args>
struct detector<Default, typename boost::make_void<Op<Args...> >::type, Op,
Args...> {
struct detector<Default, detector_t<Op<Args...> >, Op, Args...> {
using value_t = boost::true_type;
using type = Op<Args...>;
};