[#bsl-Pair_First-00] = xref:bsl.adoc[bsl]::Pair_First :relfileprefix: ../ :mrdocs: This component‐private `class` holds the `first` data member of a `pair` and constructs it appropriately. Note the partial specializations below for the cases that (template parameter) 'TYPE' is a reference. == Synopsis Declared in `<bslstl_pair.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class TYPE> struct Pair_First; ---- == Protected Member Functions [cols="1,4"] |=== | Name| Description | xref:bsl/Pair_First-00/2constructor-0a7.adoc[`Pair_First`] [.small]#[constructor]# | Constructors |=== == Protected Data Members [cols="1,4"] |=== | Name| Description | xref:bsl/Pair_First-00/first.adoc[`first`] | First element of the pair. |=== == Specializations [cols="1,4"] |=== | Name| Description | xref:bsl/Pair_First-02.adoc[`Pair_First<TYPE&>`] | This component‐private `class` holds the `first` data member of a `pair` when that member is an lvalue‐reference. Note that the C++ Standard defines the assignment operator to assign through the reference in this case, where the implicitly declared assignment operator would be deleted. | xref:bsl/Pair_First-09.adoc[`Pair_First<TYPE&&>`] | This component‐private `class` holds the `first` data member of a `pair` when that member is an rvalue‐reference. Note that the C++ Standard defines the assignment operator to assign through the reference in this case, where the implicitly declared assignment operator would be deleted. |=== == 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. If either `T1` or `T2` uses `bslma::Allocator` for memory management, then provide an optional `bslma::Allocator` argument for each constructor, to be passed through to the constructors of `first` and/or `second` as appropriate. The interface to this class is identical to the standard `std::pair` except for the addition of the allocators. 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++11. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#