Similarly to __type_pack_element, C++ doesn't offer a way to extract a
the index of the first occurrence of a type in a parameter pack. This
means that we need to build up context for something that the compiler
already has, and then compute the value in a much less efficient manner
than the compiler.
Clang can compute this information without needing to use extra
resources.
If this intrinsic doesn't (yet?) check for uniqueness, then this get<T> doesn't match std::get<T>. It might be worth mentioning that here.