[#bsl-Pair_Second-05e]
= xref:bsl.adoc[bsl]::Pair&lowbar;Second
:relfileprefix: ../
:mrdocs:

This component&hyphen;private `class` holds the `second` data member of a `pair` and constructs it appropriately&period; Note the partial specializations below for the cases that (template parameter) &apos;TYPE&apos; is a reference&period;

== Synopsis

Declared in `&lt;bslstl&lowbar;pair&period;h&gt;`

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

== Protected Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:bsl/Pair_Second-05e/2constructor-07.adoc[`Pair&lowbar;Second`]         [.small]#[constructor]#
| Constructors
|===


== Protected Data Members

[cols="1,4"]
|===
| Name| Description
| xref:bsl/Pair_Second-05e/second.adoc[`second`] 
| Second element of the pair&period;
|===


== Specializations

[cols="1,4"]
|===
| Name| Description
| xref:bsl/Pair_Second-01.adoc[`Pair&lowbar;Second&lt;TYPE&&gt;`] 
| This component&hyphen;private `class` holds the `second` data member of a `pair` when that member is an lvalue&hyphen;reference&period; Note that the C&plus;&plus; Standard defines the assignment operator to assign through the reference in this case, where the implicitly declared assignment operator would be deleted&period;
| xref:bsl/Pair_Second-05b.adoc[`Pair&lowbar;Second&lt;TYPE&&&gt;`] 
| This component&hyphen;private `class` holds the `second` data member of a `pair` when that member is an rvalue&hyphen;reference&period; Note that the C&plus;&plus; Standard defines the assignment operator to assign through the reference in this case, where the implicitly declared assignment operator would be deleted&period;
|===


== Derived Classes

[cols="1,4"]
|===
| Name| Description
| xref:bsl/pair-0b.adoc[`pair`] 
| The class template `pair` provides a pair of public data members, `first` and `second`, of type `T1` and `T2` respectively&period; If either `T1` or `T2` uses `bslma&colon;&colon;Allocator` for memory management, then provide an optional `bslma&colon;&colon;Allocator` argument for each constructor, to be passed through to the constructors of `first` and&sol;or `second` as appropriate&period; The interface to this class is identical to the standard `std&colon;&colon;pair` except for the addition of the allocators&period; Note that the implementation of this class provides `first` and `second` through multiple base classes in order to simplify construction of each member when allowing for the various rules for passing allocators in C&plus;&plus;11&period;
|===


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