1 /* 2 Copyright 2017-2018 Glen Joseph Fernandes 3 ([email protected]) 4 5 Distributed under the Boost Software License, 6 Version 1.0. (See accompanying file LICENSE_1_0.txt 7 or copy at http://www.boost.org/LICENSE_1_0.txt) 8 */ 9 10 #ifndef BOOST_TT_IS_DETECTED_HPP_INCLUDED 11 #define BOOST_TT_IS_DETECTED_HPP_INCLUDED 12 13 #include <boost/type_traits/detail/detector.hpp> 14 #include <boost/type_traits/nonesuch.hpp> 15 16 namespace boost { 17 18 template<template<class...> class Op, class... Args> 19 using is_detected = typename 20 detail::detector<nonesuch, void, Op, Args...>::value_t; 21 22 #if !defined(BOOST_NO_CXX14_VARIABLE_TEMPLATES) 23 template<template<class...> class Op, class... Args> 24 constexpr bool is_detected_v = is_detected<Op, Args...>::value; 25 #endif 26 27 } /* boost */ 28 29 #endif 30