[#bsl-is_function-05] = xref:bsl.adoc[bsl]::is_function :relfileprefix: ../ :mrdocs: 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`. == Synopsis Declared in `<bslmf_isfunction.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_TYPE> struct is_function : xref:bsl/integral_constant-02.adoc[bsl::integral_constant<bool, !is_const<const t_TYPE>::value>] ---- == Base Classes [cols="1,4"] |=== | Name| Description | `xref:bsl/integral_constant-02.adoc[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 [cols="1,4"] |=== | Name| Description | xref:bsl/integral_constant-02/type.adoc[`type`] | Alias for this `integral_constant` specialization. | xref:bsl/integral_constant-02/value_type.adoc[`value_type`] | |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:bsl/integral_constant-02/operator_call.adoc[`operator()`] | Return a copy of the template argument `t_VALUE`. | xref:bsl/integral_constant-02/2conversion.adoc[`operator value_type`] | |=== == Static Data Members [cols="1"] |=== | Name | xref:bsl/integral_constant-02/value.adoc[`value`] |=== == Specializations [cols="1,4"] |=== | Name| Description | xref:bsl/is_function-06.adoc[`is_function<t_TYPE&>`] | Reference types are, self‐evidently, never function types. The idiom for detecting function types in this component is that a function is a type that is the same as the const‐qualified version of that same type. As references also have this property, we must filter out references with this partial specialization. | xref:bsl/is_function-01.adoc[`is_function<t_TYPE&&>`] | Reference types are, self‐evidently, never function types. The idiom for detecting function types in this component is that a function is a type that is the same as the const‐qualified version of that same type. As references also have this property, we must filter out references with this partial specialization. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#