bsl::Pair_First<TYPE&&>::Pair_First

Constructors

Synopses

Declared in <bslstl_pair.h>

Bind to first the entity of (template parameter) TYPE that is bound to the first reference of other. Note that, unlike the primary template, these constructors must be declared and defaulted as the user-declared copy-assignment operator would inhibit the declaration of the move constructor, which in turn would mean that the implicitly declared constructors for the derived pair class would be just the copy constructor taking a const reference, even when the second element is move-only. Declaring the move constructor deletes the copy constructor unless it too is declared and defaulted.

Pair_First(Pair_First const&) = default;
» more...
Pair_First(Pair_First&&) = default;
» more...

Bind the specified value into the first reference-member.

constexpr
explicit
Pair_First(TYPE&& value);
» more...

Bind the specified 'value' into the 'first' reference-member.

template<
    class PARAM,
    class = void>
requires std::is_constructible<TYPE, PARAM>::value
constexpr
explicit
Pair_First(PARAM&& value);
» more...

Construct the first member of a pair, forwarding in order the elements in the specified argsPack to the corresponding constructor of (template parameter) TYPE. The length of the argsPack is equal to the length of the specified (template parameter pack) I... and passed to the constructor via the Pair_IndexSequence object.

template<class ARG>
constexpr
Pair_First(
    std::tuple<ARG>&& arg,
    BloombergLP::bslstl::Pair_IndexSequence<0U>);
» more...

Bind the specified 'value' into the 'first' reference-member. The specified 'basicAllocator' is not used.

template<class PARAM>
constexpr
Pair_First(
    PARAM&& value,
    BloombergLP::bslma::Allocator* basicAllocator,
    Pair_BslmaIdiomNone);
» more...