[#BloombergLP-bslmf-ForwardingType-07] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmf.adoc[bslmf]::ForwardingType :relfileprefix: ../../ :mrdocs: This template metafunction has a member `Type` computed such that, for a specified `t_TYPE` parameter, a function with argument of `t_TYPE` can be called efficiently from another function (e.g., a wrapper) by declaring the corresponding parameter of the other wrapper as 'typename ForwardingType<t_TYPE>::Type'. The `Type` member is computed to minimize the number of expensive copies while forwarding the arguments as faithfully as possible. == Synopsis Declared in `<bslmf_forwardingtype.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_TYPE> class ForwardingType; ---- == Type Aliases [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslmf/ForwardingType-07/TargetType.adoc[`TargetType`] | The closest type used to "reconstitute" `t_TYPE` from `ForwardingType<t_TYPE>::Type`. This type may differ from `t_TYPE` through the addition of a reference. | xref:BloombergLP/bslmf/ForwardingType-07/Type.adoc[`Type`] | The type that should be used to forward `t_TYPE` through a chain of function calls. |=== == Specializations [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslmf/ForwardingType-00.adoc[`ForwardingType<Signaler_NotArg>`] | This template metafunction has a member `Type` computed such that, for a specified `t_TYPE` parameter, a function with argument of `t_TYPE` can be called efficiently from another function (e.g., a wrapper) by declaring the corresponding parameter of the other wrapper as 'typename ForwardingType<t_TYPE>::Type'. The `Type` member is computed to minimize the number of expensive copies while forwarding the arguments as faithfully as possible. |=== == Derived Classes [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslmf/ConstForwardingType.adoc[`ConstForwardingType`] | DEPRECATED: Use `ForwardingType` instead. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#