[#bsl-Pair_Second-05e-2constructor-07] = xref:bsl.adoc[bsl]::xref:bsl/Pair_Second-05e.adoc[Pair_Second]::Pair_Second :relfileprefix: ../../ :mrdocs: Constructors == Synopses Declared in `<bslstl_pair.h>` Value‐initialize the 'second' member of a 'pair'. This constructor is declared only if (template parameter) `TYPE` is default constructible. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr xref:bsl/Pair_Second-05e/2constructor-00.adoc[Pair_Second]() requires std::is_default_constructible_v<TYPE>; ---- [.small]#xref:bsl/Pair_Second-05e/2constructor-00.adoc[_» more..._]# Construct the `second` member from the specified non‐modifiable `value`, without specifying an allocator. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr explicit xref:bsl/Pair_Second-05e/2constructor-01.adoc[Pair_Second](bsl::add_lvalue_reference<TYPE const>::type value); ---- [.small]#xref:bsl/Pair_Second-05e/2constructor-01.adoc[_» more..._]# Construct the `second` member from the specified `value`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class PARAM, class = void> requires !bsl::is_same<Pair_Second, bsl::remove_cvref_t<PARAM>>::value constexpr explicit xref:bsl/Pair_Second-05e/2constructor-08e.adoc[Pair_Second](PARAM&& value); ---- [.small]#xref:bsl/Pair_Second-05e/2constructor-08e.adoc[_» more..._]# Construct the `second` member using the `allocator_arg` idiom. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:bsl/Pair_Second-05e/2constructor-08f.adoc[Pair_Second]( xref:BloombergLP/bslma/Allocator.adoc[BloombergLP::bslma::Allocator]* basicAllocator, xref:bsl/Pair_BslmaIdiomAllocatorArgT.adoc[Pair_BslmaIdiomAllocatorArgT] idiom); ---- [.small]#xref:bsl/Pair_Second-05e/2constructor-08f.adoc[_» more..._]# Construct the `second` member with the allocator as the last argument. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:bsl/Pair_Second-05e/2constructor-0f.adoc[Pair_Second]( xref:BloombergLP/bslma/Allocator.adoc[BloombergLP::bslma::Allocator]* basicAllocator, xref:bsl/Pair_BslmaIdiomAtEnd.adoc[Pair_BslmaIdiomAtEnd] idiom); ---- [.small]#xref:bsl/Pair_Second-05e/2constructor-0f.adoc[_» more..._]# Construct the `second` member of a `pair` with no allocator argument. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:bsl/Pair_Second-05e/2constructor-05.adoc[Pair_Second]( xref:BloombergLP/bslma/Allocator.adoc[BloombergLP::bslma::Allocator]* basicAllocator, xref:bsl/Pair_BslmaIdiomNone.adoc[Pair_BslmaIdiomNone] idiom); ---- [.small]#xref:bsl/Pair_Second-05e/2constructor-05.adoc[_» more..._]# Construct the `second` member from the elements of `argsPack`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class... ARGS, size_t I...> xref:bsl/Pair_Second-05e/2constructor-03.adoc[Pair_Second]( std::tuple<ARGS...>&& argsPack, xref:BloombergLP/bslstl/Pair_IndexSequence.adoc[BloombergLP::bslstl::Pair_IndexSequence<I...>] indices); ---- [.small]#xref:bsl/Pair_Second-05e/2constructor-03.adoc[_» more..._]# Construct the `second` member using the specified `basicAllocator`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class PARAM> xref:bsl/Pair_Second-05e/2constructor-06b.adoc[Pair_Second]( PARAM&& value, xref:BloombergLP/bslma/Allocator.adoc[BloombergLP::bslma::Allocator]* basicAllocator, xref:bsl/Pair_BslmaIdiomAllocatorArgT.adoc[Pair_BslmaIdiomAllocatorArgT] idiom); ---- [.small]#xref:bsl/Pair_Second-05e/2constructor-06b.adoc[_» more..._]# Construct the `second` member with the allocator as the last argument. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class PARAM> xref:bsl/Pair_Second-05e/2constructor-0b.adoc[Pair_Second]( PARAM&& value, xref:BloombergLP/bslma/Allocator.adoc[BloombergLP::bslma::Allocator]* basicAllocator, xref:bsl/Pair_BslmaIdiomAtEnd.adoc[Pair_BslmaIdiomAtEnd] idiom); ---- [.small]#xref:bsl/Pair_Second-05e/2constructor-0b.adoc[_» more..._]# Construct the `second` member from `value`, ignoring the allocator. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class PARAM> xref:bsl/Pair_Second-05e/2constructor-06c.adoc[Pair_Second]( PARAM&& value, xref:BloombergLP/bslma/Allocator.adoc[BloombergLP::bslma::Allocator]* basicAllocator, xref:bsl/Pair_BslmaIdiomNone.adoc[Pair_BslmaIdiomNone] idiom); ---- [.small]#xref:bsl/Pair_Second-05e/2constructor-06c.adoc[_» more..._]# == Parameters [cols="1,4"] |=== | Name| Description | *value* | value copied into the `second` member | *basicAllocator* | allocator used to supply memory | *idiom* | tag selecting the `allocator_arg` construction idiom | *argsPack* | tuple of arguments forwarded to the constructor of `TYPE` | *indices* | index sequence enumerating the elements of `argsPack` |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#