我有一个可变参数模板类中给出的参数包,并且想要提取第一个类型。是否有可能获得第一类参数包在单线?
目前我这样做,它工作正常,但有点麻烦。是否有可能做同样的事情更简单?应该将FirstEntityType
定义为EntityTs
中的第一种类型。请注意,我想保留类模板的签名。我知道有可能写template<typename FirstEntityType, typename... OtherEntityTypes>
,但这是我不想做的事情。
template<typename... EntityTs>
class EntityContext
{
template<typename T, typename ... Ts>
struct K {
using type = T;
};
using FirstEntityType = typename K<EntityTs...>::type;
// ...
}
这是SFINAE友好,如果是在C++的是什么版本? – Yakk
@Yakk我们不是在紧急的情况下,所以没关系? – Barry