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_FUNCTION_ARITY_HPP_INCLUDED
10#define BOOST_FT_FUNCTION_ARITY_HPP_INCLUDED
11
12#include <boost/blank.hpp>
13#include <boost/mpl/if.hpp>
14
15#include <boost/mpl/aux_/lambda_support.hpp>
16
17#include <boost/function_types/is_callable_builtin.hpp>
18#include <boost/function_types/components.hpp>
19
20namespace boost
21{
22 namespace function_types
23 {
24 template<typename T> struct function_arity
25 : mpl::if_
26 < function_types::is_callable_builtin<T>
27 , typename components<T>::function_arity, boost::blank
28 >::type
29 {
30 BOOST_MPL_AUX_LAMBDA_SUPPORT(1,function_arity,(T))
31 };
32 }
33}
34
35#endif
36
37

source code of boost/boost/function_types/function_arity.hpp