Скажем, у меня есть тип, который параметризован другим интегральным типом POD:
template< size_t N >
struct MyFoo { /* ... */ };
С ним можно иметь кортеж из них:
typedef std::tuple< MyFoo< 1 >, MyFoo< 2 >, MyFoo< 3 > > Foo3;
Но теперь я хочу иметь тип «Foo< N >
», где N
— это constexpr
. Один из способов добиться чего-то похожего на Foo< N >
:
template< size_t N >
struct Foos;
template<> struct Foos< 1 >{ typedef std::tuple< MyFoo< 1 > > type; };
template<> struct Foos< 2 >{ typedef std::tuple< MyFoo< 1 >, MyFoo< 2 > > type; };
/* continue with this.... */
э.э. настройте его вручную для каждого N, который я хочу. Есть ли более общий способ сделать это?
Спасибо :)