[#bsl-Pair_First-02-2constructor-0ec]
= xref:bsl.adoc[bsl]::xref:bsl/Pair_First-02.adoc[Pair&lowbar;First&lt;TYPE&&gt;]::Pair&lowbar;First
:relfileprefix: ../../
:mrdocs:

Constructors

== Synopses

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

Bind `first` to the entity bound to `other&period;first`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:bsl/Pair_First-02/2constructor-003.adoc[Pair&lowbar;First](xref:bsl/Pair_First-02.adoc[Pair&lowbar;First] const& other) = default;
----

[.small]#xref:bsl/Pair_First-02/2constructor-003.adoc[_» more&period;&period;&period;_]#

Bind `first` to the entity bound to `other&period;first`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:bsl/Pair_First-02/2constructor-06.adoc[Pair&lowbar;First](xref:bsl/Pair_First-02.adoc[Pair&lowbar;First]&& other) = default;
----

[.small]#xref:bsl/Pair_First-02/2constructor-06.adoc[_» more&period;&period;&period;_]#

Bind the specified `value` into the `first` reference&hyphen;member&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
explicit
xref:bsl/Pair_First-02/2constructor-0d.adoc[Pair&lowbar;First](TYPE& value);
----

[.small]#xref:bsl/Pair_First-02/2constructor-0d.adoc[_» more&period;&period;&period;_]#

Bind the specified `value` into the `first` reference&hyphen;member&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class PARAM,
    class = void&gt;
requires std&colon;&colon;is&lowbar;constructible&lt;TYPE, PARAM&gt;&colon;&colon;value
constexpr
explicit
xref:bsl/Pair_First-02/2constructor-0e2.adoc[Pair&lowbar;First](PARAM&& value);
----

[.small]#xref:bsl/Pair_First-02/2constructor-0e2.adoc[_» more&period;&period;&period;_]#

Construct the `first` member from the single element of `arg`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class ARG&gt;
constexpr
xref:bsl/Pair_First-02/2constructor-0b.adoc[Pair&lowbar;First](
    std::tuple&lt;ARG&gt;&& arg,
    xref:BloombergLP/bslstl/Pair_IndexSequence.adoc[BloombergLP::bslstl::Pair&lowbar;IndexSequence&lt;0U&gt;] indices);
----

[.small]#xref:bsl/Pair_First-02/2constructor-0b.adoc[_» more&period;&period;&period;_]#

Bind `value` into `first`&semi; the allocator argument is not used&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class PARAM&gt;
constexpr
xref:bsl/Pair_First-02/2constructor-00e.adoc[Pair&lowbar;First](
    PARAM&& value,
    xref:BloombergLP/bslma/Allocator.adoc[BloombergLP::bslma::Allocator]* basicAllocator,
    xref:bsl/Pair_BslmaIdiomNone.adoc[Pair&lowbar;BslmaIdiomNone] idiom);
----

[.small]#xref:bsl/Pair_First-02/2constructor-00e.adoc[_» more&period;&period;&period;_]#

== Parameters

[cols="1,4"]
|===
| Name| Description
| *other*
| object whose `first` reference is copied
| *value*
| entity to bind into the `first` reference&hyphen;member
| *arg*
| single&hyphen;element tuple forwarded to the constructor of `TYPE`
| *indices*
| index sequence enumerating the elements of `arg`
| *basicAllocator*
| allocator argument, which is not used
| *idiom*
| tag selecting the no&hyphen;allocator construction idiom
|===


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