bsl::is_function

Meta-function for detecting function types.

Synopsis

Declared in <bslmf_isfunction.h>

template<class t_TYPE>
struct is_function
    : bsl::integral_constant<bool, !is_const<const t_TYPE>::value>

Description

This struct template implements the is_function meta-function defined in the C++11 standard [meta.unary.cat]to determine if the (template parameter) t_TYPE is a function type. This struct derives from bsl::true_type if the t_TYPE is a function type, and from bsl::false_type otherwise. This implementation relies on the fact that neither function types nor reference types can be cv-qualified so that is_const<const t_TYPE> will actually yield false.

Base Classes

NameDescription
bsl::integral_constant<bool, !is_const<const t_TYPE>::value>Metafunction representing a compile-time constant of the specified (template parameter) t_TYPE with the specified (template parameter) t_VALUE.

Type Aliases

NameDescription
type Alias for this integral_constant specialization.
value_type Alias for the (template parameter) t_TYPE.

Member Functions

NameDescription
operator() Return a copy of the template argument t_VALUE.
operator t_TYPE Return a copy of the template argument t_VALUE.

Static Data Members

NameDescription
value The compile-time constant value of this metafunction.

Specializations

NameDescription
is_function<t_TYPE&> Partial specialization of is_function for lvalue references.
is_function<t_TYPE&&> Partial specialization of is_function for rvalue references.