1 template < typename T
> struct integral_c
{
2 static const T value
= 0;
4 struct is_reference
:integral_c
< bool > { };
5 template < class > struct is_function_ptr_helper
{ };
6 template < bool > struct is_function_chooser
;
8 template <> struct is_function_chooser
<0 >
10 template < typename T
> struct result_
:is_function_ptr_helper
< T
* > { };
13 template < typename T
> struct is_function_impl
:is_function_chooser
<
14 is_reference::value
>::result_
< T
> { };