/* Copyright 2017-2018 Glen Joseph Fernandes Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef BOOST_TT_DETAIL_DETECTOR_HPP_INCLUDED #define BOOST_TT_DETAIL_DETECTOR_HPP_INCLUDED #include #include namespace boost { namespace detail { template using detector_t = typename boost::make_void::type; template class, class...> struct detector { using value_t = boost::false_type; using type = Default; }; template class Op, class... Args> struct detector >, Op, Args...> { using value_t = boost::true_type; using type = Op; }; } /* detail */ } /* boost */ #endif