Я прочитал this, this, this и многие другие ... но ни одна из этих сообщений не отвечает или не применима к моей конкретной проблеме.Конструктор шаблонов Variadic с несколькими пакетами параметров
У меня есть X
-структура с VARIADIC конструктором шаблона:
struct X
{
template<typename... T>
X(T... t) { /*...*/ }
};
И у меня есть структура Y
, которая содержит два объекта типа X
. Я хотел бы определить конструктор шаблонов для Y
, что позволяет правильно инициализировать оба члена типа X
со списком различных параметров, то есть что-то, что выглядит как следующий код (который, очевидно, не работает):
struct Y
{
template<typename... U, typename... V>
Y(U&&... u, V&&... v) // this does not work
: x1(std::forward(u)...), x2(std::forward(v)...) // this is was I need to do
{}
X x1, x2;
};
Как мог Я делаю это, используя обертки, кортежи или любые подходящие машины метапрограммирования? Решение C++ 14 приемлемо.
@ πάντα ῥεῖ: Я прошу C++ 14; связанный с вами вопрос может быть подходящим решением для моей проблемы, но ему 2 года! возможно, лучше использовать C++ 14. – shrike
Я не уверен, что C++ 14 сильно изменил процесс распаковки VTP, но хорошо ... –
@ πάντα ῥεῖ: вы не уверены? Я уверен, что C++ 14 добавил некоторые новые интересные функции для распаковки кортежей ... – shrike