BloombergLP::bslstl::Variant_VTableId

This component-private struct computes an array in which element i is a pointer to Variant_FunctionId<t_RET, t_VISITOR, t_VARIANT, i>::functionImpl, defined above as a function that invokes a t_VISITOR with a tag representing i and alternative i of t_VARIANT, implicitly converting the return type to t_RET. Implementation note: The constexpr static maps of pointers defined by Variant_VTable and this class have deliberately been defined in two different classes as having them in the same class caused issues with Clang and Microsoft Visual C++.

Synopsis

Declared in <bslstl_variant.h>

template<
    class t_RET,
    class t_VISITOR,
    class t_VARIANT,
    class t_DUMMY>
struct Variant_VTableId;

Specializations

NameDescription
Variant_VTableId<t_RET, t_VISITOR, t_VARIANT, bslmf::IntegerSequence<std::size_t, t_INDICES...>> In order to allow for perfect forwarding, both t_VISITOR and t_VARIANT must be of reference type. If they are not, something went wrong.