Я пытаюсь передать произвольные параметры во время построения классам, унаследованным через пакеты параметров шаблона.Рассмотрим следующий пример:
struct Zero {
Zero() {}
};
struct Two {
Two(int, int) {}
};
template <class... Pack>
struct User : Pack... {
template <class... Params>
User(Params... p) : Pack(p)... {} // How to do this correctly?
};
auto test = User<Zero, Two>(1,2);
Если я сейчас попытаюсь создать объект типа User<Zero, Two>
, как я могу передать Params
в правильный конструктор?
Самый очевидный обходной путь - иметь конструктор кортежей, принимающий ровно один кортеж для каждого типа, который может принять User
, но для этого требуется изменить Zero
и Two
, что очень сложно в моем случае использования.
Возможно ли это?Также возможны обходные пути.