This component‐private metafunction is derived from bsl::true_type if (template parameter) t_TYPE is neither a tag type, nor the type (template parameter) t_VARIANT (modulo cv‐qualification), nor the corresponding (possibly cv‐qualified) std::variant type, there is a unique best match alternative in t_VARIANT for std::declval<t_TYPE>(), and that alternative is constructible from std::declval<t_TYPE>(); otherwise, this metafunction is derived from bsl::false_type.
Synopsis
Declared in <bslstl_variant.h>
template<
class t_VARIANT,
class t_TYPE>
struct Variant_ConstructsFromType
: bsl::integral_constant<bool, !bsl::is_same<typename bsl::remove_cvref<t_TYPE>::type, t_VARIANT>::value && !Variant_IsTag<typename bsl::remove_cvref<t_TYPE>::type>::value && !bsl::is_same<typename Variant_CorrespondingStdVariant<t_VARIANT>::type, typename bsl::remove_cvref<t_TYPE>::type>::value && Variant_IsAlternativeConstructibleFrom<t_VARIANT, t_TYPE>::value>
Base Classes
Name |
Description |
Metafunction representing a compile‐time constant of the specified (template parameter) |
Type Aliases
Name |
Description |
Alias for this |
|
Member Functions
Name |
Description |
Return a copy of the template argument |
|