blob: 1e76215cc4a9ecd5e467f8387f26f288a43ed08f [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
Jeff Thompson3d613fd2013-10-15 15:39:04 -07008#ifndef NDNBOOST_FT_IS_FUNCTION_HPP_INCLUDED
9#define NDNBOOST_FT_IS_FUNCTION_HPP_INCLUDED
Jeff Thompsona28eed82013-08-22 16:21:10 -070010
11#include <ndnboost/mpl/aux_/lambda_support.hpp>
12#include <ndnboost/type_traits/detail/template_arity_spec.hpp>
13
14#include <ndnboost/function_types/components.hpp>
15
16namespace ndnboost
17{
18 namespace function_types
19 {
20 template< typename T, typename Tag = null_tag >
21 struct is_function
22 : function_types::represents
23 < function_types::components<T>
24 , function_types::tag<Tag ,detail::function_tag>
25 >
26 {
Jeff Thompson3d613fd2013-10-15 15:39:04 -070027 NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_function,(T,Tag))
Jeff Thompsona28eed82013-08-22 16:21:10 -070028 };
29 }
Jeff Thompson3d613fd2013-10-15 15:39:04 -070030 NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_function)
Jeff Thompsona28eed82013-08-22 16:21:10 -070031}
32
33#endif
34