1 2 // (C) Copyright Tobias Schwinger 3 // 4 // Use modification and distribution are subject to the boost Software License, 5 // Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt). 6 7 //------------------------------------------------------------------------------ 8 9 #ifndef BOOST_FT_IS_CALLABLE_BUILTIN_HPP_INCLUDED 10 #define BOOST_FT_IS_CALLABLE_BUILTIN_HPP_INCLUDED 11 12 #include <boost/mpl/aux_/lambda_support.hpp> 13 #include <boost/type_traits/detail/template_arity_spec.hpp> 14 15 #include <boost/function_types/components.hpp> 16 17 namespace boost 18 { 19 namespace function_types 20 { 21 template< typename T, typename Tag = null_tag > 22 struct is_callable_builtin 23 : function_types::represents 24 < function_types::components<T> 25 , function_types::tag<Tag, detail::callable_builtin_tag> 26 > 27 { 28 BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_callable_builtin,(T,Tag)) 29 }; 30 } 31 BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_callable_builtin) 32 } 33 34 #endif 35 36