blob: a2b224732a9825a1b599b3fc93a29fbbaa5d2074 [file] [log] [blame]
Jeff Thompsona28eed82013-08-22 16:21:10 -07001
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
Jeff Thompson3d613fd2013-10-15 15:39:04 -07009#ifndef NDNBOOST_FT_IS_CALLABLE_BUILTIN_HPP_INCLUDED
10#define NDNBOOST_FT_IS_CALLABLE_BUILTIN_HPP_INCLUDED
Jeff Thompsona28eed82013-08-22 16:21:10 -070011
12#include <ndnboost/mpl/aux_/lambda_support.hpp>
13#include <ndnboost/type_traits/detail/template_arity_spec.hpp>
14
15#include <ndnboost/function_types/components.hpp>
16
17namespace ndnboost
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 {
Jeff Thompson3d613fd2013-10-15 15:39:04 -070028 NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_callable_builtin,(T,Tag))
Jeff Thompsona28eed82013-08-22 16:21:10 -070029 };
30 }
Jeff Thompson3d613fd2013-10-15 15:39:04 -070031 NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_callable_builtin)
Jeff Thompsona28eed82013-08-22 16:21:10 -070032}
33
34#endif
35