1 2 // (C) Copyright Edward Diener 2019 3 // Use, modification and distribution are subject to the Boost Software License, 4 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 // http://www.boost.org/LICENSE_1_0.txt). 6 7 #if !defined(BOOST_TTI_DETAIL_ENCLOSING_TYPE_HPP) 8 #define BOOST_TTI_DETAIL_ENCLOSING_TYPE_HPP 9 10 #include <boost/mpl/or.hpp> 11 #include <boost/type_traits/is_class.hpp> 12 #include <boost/type_traits/is_union.hpp> 13 14 namespace boost 15 { 16 namespace tti 17 { 18 namespace detail 19 { 20 template 21 < 22 class BOOST_TTI_DETAIL_TP_T 23 > 24 struct enclosing_type : 25 boost::mpl::or_ 26 < 27 boost::is_class<BOOST_TTI_DETAIL_TP_T>, 28 boost::is_union<BOOST_TTI_DETAIL_TP_T> 29 > 30 { 31 }; 32 } 33 } 34 } 35 36 #endif // BOOST_TTI_DETAIL_ENCLOSING_TYPE_HPP 37