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

Name

Description

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

Name

Description

type

Alias for this integral_constant specialization.

value_type

Alias for the (template parameter) t_TYPE.

Member Functions

Name

Description

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

Name

Description

value

The compile‐time constant value of this metafunction.

Specializations

Name

Description

is_function<t_TYPE&>

Partial specialization of is_function for lvalue references.

is_function<t_TYPE&&>

Partial specialization of is_function for rvalue references.

Created with MrDocs