[#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&lowbar;TYPE` parameter, a function with argument of `t&lowbar;TYPE` can be called efficiently from another function (e&period;g&period;, a wrapper) by declaring the corresponding parameter of the other wrapper as &apos;typename ForwardingType&lt;t&lowbar;TYPE&gt;&colon;&colon;Type&apos;&period; The `Type` member is computed to minimize the number of expensive copies while forwarding the arguments as faithfully as possible&period;

== Synopsis

Declared in `&lt;bslmf&lowbar;forwardingtype&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class t&lowbar;TYPE&gt;
class ForwardingType;
----

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslmf/ForwardingType-07/TargetType.adoc[`TargetType`] 
| The closest type used to &quot;reconstitute&quot; `t&lowbar;TYPE` from `ForwardingType&lt;t&lowbar;TYPE&gt;&colon;&colon;Type`&period; This type may differ from `t&lowbar;TYPE` through the addition of a reference&period;
| xref:BloombergLP/bslmf/ForwardingType-07/Type.adoc[`Type`] 
| The type that should be used to forward `t&lowbar;TYPE` through a chain of function calls&period;
|===


== Specializations

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslmf/ForwardingType-00.adoc[`ForwardingType&lt;Signaler&lowbar;NotArg&gt;`] 
| This template metafunction has a member `Type` computed such that, for a specified `t&lowbar;TYPE` parameter, a function with argument of `t&lowbar;TYPE` can be called efficiently from another function (e&period;g&period;, a wrapper) by declaring the corresponding parameter of the other wrapper as &apos;typename ForwardingType&lt;t&lowbar;TYPE&gt;&colon;&colon;Type&apos;&period; The `Type` member is computed to minimize the number of expensive copies while forwarding the arguments as faithfully as possible&period;
|===


== Derived Classes

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslmf/ConstForwardingType.adoc[`ConstForwardingType`] 
| DEPRECATED&colon; Use `ForwardingType` instead&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
