bsl::Pair_Second<TYPE&&>::Pair_Second

Constructors

Synopses

Declared in <bslstl_pair.h>

Bind to second the entity of (template parameter) TYPE that is bound to the second 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_Second(Pair_Second const&) = default;
» more...
Pair_Second(Pair_Second&&) = default;
» more...

Bind the specified value into the second reference-member.

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

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

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

Construct the second 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_Second(
    std::tuple<ARG>&& arg,
    BloombergLP::bslstl::Pair_IndexSequence<0U>);
» more...

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

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