BloombergLP::bslstl::Variant_isAlternativeAssignableFrom

Determine whether the unique best-match alternative is assignable.

Synopsis

Declared in <bslstl_variant.h>

template<
    class t_VARIANT,
    class t_TYPE,
    size_t t_INDEX = BloombergLP::bslstl::Variant_ConvertIndex<t_TYPE, t_VARIANT>::value>
struct Variant_isAlternativeAssignableFrom
    : bsl::integral_constant<bool, Variant_IsAssignable<typename bsl::variant_alternative<t_INDEX, t_VARIANT>::type &, t_TYPE>::value && Variant_HasUniqueCVType<typename bsl::variant_alternative<BloombergLP::bslstl::Variant_ConvertIndex<t_TYPE, t_VARIANT>::value, t_VARIANT>::type, t_VARIANT>::value>

Description

This component-private metafunction is derived from bsl::true_type if there is a unique best match alternative in (template parameter) t_VARIANT for std::declval<t_TYPE>() and that alternative is both constructible and assignable from std::declval<t_TYPE>(), and bsl::false_type otherwise.

Type Aliases

NameDescription
type Alias for this integral_constant specialization.
value_type Alias for the (template parameter) t_TYPE.

Member Functions

NameDescription
operator() Return a copy of the template argument t_VALUE.
operator t_TYPE Return a copy of the template argument t_VALUE.

Static Data Members

NameDescription
value The compile-time constant value of this metafunction.

Specializations

NameDescription
Variant_isAlternativeAssignableFrom<t_VARIANT, t_TYPE, bsl::variant_npos> Derive from bsl::false_type when there is no unique best match.