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_STATIC_FUNCTION_TYPE_HPP) 8 #define BOOST_TTI_DETAIL_STATIC_FUNCTION_TYPE_HPP 9 10 #include <boost/function_types/is_function.hpp> 11 #include <boost/function_types/property_tags.hpp> 12 #include <boost/mpl/and.hpp> 13 #include <boost/mpl/vector.hpp> 14 #include <boost/type_traits/is_same.hpp> 15 16 namespace boost 17 { 18 namespace tti 19 { 20 namespace detail 21 { 22 template 23 < 24 class BOOST_TTI_DETAIL_TP_R, 25 class BOOST_TTI_DETAIL_TP_FS, 26 class BOOST_TTI_DETAIL_TP_TAG 27 > 28 struct static_function_type : 29 boost::mpl::and_ 30 < 31 boost::is_same<BOOST_TTI_DETAIL_TP_TAG,boost::function_types::null_tag>, 32 boost::is_same<BOOST_TTI_DETAIL_TP_FS,boost::mpl::vector<> >, 33 boost::function_types::is_function<BOOST_TTI_DETAIL_TP_R> 34 > 35 { 36 }; 37 } 38 } 39 } 40 41 #endif // BOOST_TTI_DETAIL_STATIC_FUNCTION_TYPE_HPP 42