Благодаря SO парней я решил один из моей проблемы: Create a tuple with variatic type wrappedКак пройти же структуру с различным аргументом шаблона в качестве параметра пакета
Но я понял, после того, что я до сих пор есть проблема, которую я не могу решить. Так что теперь у меня есть:
template < typename T,
size_t Size >
struct Metadata {
using type = T;
std::bitset<Size> bitset;
};
template <class... Ts>
constexpr auto make_metadata()
{
constexpr size_t N = sizeof...(Ts);
return std::make_tuple(Metadata<Ts, N>{0}...);
}
Я намерен использовать его «как», что:
constexpr auto result = make_metadata<Foo1, Foo2, Foo3>({0}, {0}, {0});
И согласно Jarod42 комментарий, я думаю, что нужно 2 функции.
Но как я могу передать аргументы функции, а затем в кортеж?
И мне интересно, как это, но без силы, чтобы пройти каждый аргументы для каждого Ts, если их нет, я просто поставить значение по умолчанию (2 вопросы).
Pass кортеж для каждого конструктора (который можно распаковать при желании в вспомогательной функции). – Jarod42
Не совсем понятно, что вы хотите, можете ли вы добавить пример того, как его использовать? –
@ Jarod42 на самом деле я просто могу поместить кортеж (как в вашем ответе) в качестве аргумента, а затем при необходимости выполнить значение по умолчанию? –