Название, вероятно, трудно разобрать, поэтому вот что я имею в виду. Допустим, у меня есть несколько классов A, B1, B2, B3 ... Bn, где я хотел бы держать кортеж шаблонов A на каком-то классе B. Действительный конечный результат может быть что-то вроде tuple<A<B3>, A<B1>> _chain
. Это будет содержаться в контейнере класса, который мы будем называть C. То, что я ищу, - это инициализация C с помощью набора типов B, которые затем включаются в мой класс A. Я не могу просто сделать
template<class... T>
class C
{
std::tuple<T...> _chain;
public:
C(const T&... t) : _chain(t...) { }
};
, потому что тогда я получу кортеж Bs. Есть ли эргономичный способ обернуть шаг инициализации (_chain(t...)
), чтобы в итоге я получил набор из шаблонов A для шаблонов B, которые я передаю классу?