Is it possible to get the first type of a parameter pack in a one-liner?

Viewed 5539

I have a parameter pack given in a variadic template class and want to extract the first type.

Currently I do this, which works fine but is somehow cumbersome. Is it possible to do the same thing simpler? FirstEntityTypeshould be defined to have the type of the first type in EntityTs. Note, I want to keep the signature of the class template. I know that it would be possible to write template<typename FirstEntityType, typename... OtherEntityTypes>, it is however something that I don't want to do.

template<typename... EntityTs>
struct EntityContext
{
    template<typename T, typename ... Ts>
    struct K {
        using type = T;
    };

    using FirstEntityType = typename K<EntityTs...>::type;
    
   // ...
};
2 Answers
Related