我试图实现以下效果:
template <typename> struct integral_pack_traits;
template <template <template <typename T, T...> class> class Wrapper,
template <typename T, T...> class P>
struct integral_pack_traits<Wrapper<P>> {
using type = T;
};
因此,例如,std::index_sequence
将具有typedef std::size_t
。这甚至可能吗?注意
template <typename Pack> struct integral_pack_traits;
template <template <typename U, U...> class P, typename T, T... Is>
struct integral_pack_traits<P<T, Is...>> {
using type = T;
};
似乎更合适,但对我的应用程序不起作用。这是我的用例:
template <template <typename T, T...> class P> struct template_wrapper;
template <typename TemplateInfo> struct template_traits;
template <template <typename U, U...> class P>
struct template_traits<template_wrapper<P>> :
template_traits_h<template_wrapper<P>, std::integer_sequence<int>> { };
上面的int
需要更广泛地替换为
integral_pack_traits<template_wrapper<P>>::type
为了正常工作。