Check out example codes for "varint index". It will help you in understanding the concepts better.

Code Example 1

template <typename> struct tag { };

template <typename T, typename V>
struct variant_index;

template <typename T, typename... Ts> 
struct variant_index<T, std::variant<Ts...>>
    : std::integral_constant<size_t, std::variant<tag<Ts>...>(tag<T>()).index()>
{ };

// Use as: variant_index<TYPE, VARIANT>::value

Learn ReactJs, React Native from akashmittal.com