Quick Links: |
Provide a compile-time check for determining function types. More...
bsl::is_function | standard meta-function for determining function types |
bsl::is_function_v | the result value of bsl::is_function |
bsl::is_function
and a template variable bsl::is_function_v
, that represents the result value of the bsl::is_function
meta-function, that may be used to query whether a template parameter type is a function type. bsl::is_function
meets the requirements of the is_function
template defined in the C++11 standard [meta.unary.cat]. is_function_v
is defined in the C++17 standard as an inline variable. If the current compiler supports the inline variable C++17 compiler feature, bsl::is_function_v
is defined as an inline constexpr bool
variable. Otherwise, if the compiler supports the variable templates C++14 compiler feature, bsl::is_function_v
is defined as a non-'const' constexpr bool
variable. See BSLS_COMPILERFEATURES_SUPPORT_INLINE_VARIABLES
and BSLS_COMPILERFEATURES_SUPPORT_VARIABLE_TEMPLATES
macros in bsls_compilerfeatures component for details. bsl::is_function
template for both a non-function type and a function type, and assert the value
static data member of each instantiation: assert(false == bsl::is_function<int>::value); assert(true == bsl::is_function<int (int)>::value);
bsl::is_function_v
variable as follows: #ifdef BSLS_COMPILERFEATURES_SUPPORT_VARIABLE_TEMPLATES assert(false == bsl::is_function_v<int>); assert(true == bsl::is_function_v<int (int)>); #endif