[#BloombergLP-bslstl-Function_ArgTypes-06] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslstl.adoc[bslstl]::Function_ArgTypes :relfileprefix: ../../ :mrdocs: Component‐private metafunction providing nested argument typedefs for `bsl::function`. == Synopsis Declared in `<bslstl_function.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class PROTOTYPE> struct Function_ArgTypes; ---- == Description This component‐private struct template provides the following nested typedefs for `bsl::function` for a specified `PROTOTYPE` which must be a function type: ` argument_type ‐‐ Only if PROTOTYPE takes exactly one argument first_argument_type ‐‐ Only if PROTOTYPE takes exactly two arguments second_argument_type ‐‐ Only if PROTOTYPE takes exactly two arguments ` The C++ Standard requires that `function` define these typedefs for compatibility with one‐ and two‐argument legacy (now deprecated) functor adaptors. `bsl::function` publicly inherits from an instantiation of this template in order to conditionally declare the above nested types. This primary (unspecialized) template provides no typedefs. == Specializations [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslstl/Function_ArgTypes-05.adoc[`Function_ArgTypes<RET(ARG)>`] | `Function_ArgTypes` specialization for single‐argument function prototypes. | xref:BloombergLP/bslstl/Function_ArgTypes-0d.adoc[`Function_ArgTypes<RET(ARG1, ARG2)>`] | `Function_ArgTypes` specialization for two‐argument function prototypes. |=== == Derived Classes [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslstl/Function_Variadic-08.adoc[`Function_Variadic<RET(ARGS...)>`] | Component‐private base providing representation and call operator for `bsl::function`. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#