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