Мой вопрос касается пакетов параметров и связанных кортежей.Как мне создать кортеж того же размера, что и пакет параметров, но с одним независимым типом?
template <class... T>
class Thing {
public:
// some struct that was found helpful for any Type used as parameter
struct HelperData{
int a;
int b;
};
[...]
private:
// the tuple used as normally, my initial reason to use parameter pack
std::tuple<T...> m_tuple;
// now I want a tuple of N values of type HelperData, where N is sizeof...(T)
std::tuple<HelperData...sizeof...(T)> m_helperData; //???
};
Ретроспективный комментарий:
Возможно, этот вопростехнически обоснован и имеет отличные ответы.Но основная концепция поднимала все больше вопросов (как перебирать несколько контейнеров одновременно и т. Д.).Это может быть правильным для C ++ 14 или новее, однако, я только что обнаружил, что с C ++ 11 все гораздо проще, когда я просто работаю над проблемой:
У меня естьсписок типов / объектов, представленных пакетом параметров.Это определяет основной кортеж как члена класса.Теперь я хочу дополнительную информацию для каждого из этих типов / объектов, хранящуюся в дополнительном кортеже. Не делайте этого. Эта структура (почти) всегда может быть заменена одним кортежем, содержащим, например, структуры со всеми элементами, которые иначе распределены по нескольким кортежам.