Я не уверен, что сформулировал вопрос наиболее эффективным образом, но я только сейчас начинаю использовать С++ 11, и у меня возникают проблемы с применением его новых функций к рассматриваемой проблеме. У меня есть следующая условная функция:
template <typename ... Args>
std::vector<std::type_index> foo()
Я хотел бы, чтобы foo()
возвращал vector
, содержащий значение type_index
для каждого из типов в пакете параметров Args
. Например, foo<int, vector<int>, double>()
вернет vector
, содержащее { type_index(typeid(int)), type_index(typeid(vector<int>)), type_index(typeid(double)) }
.
Условно я хотел бы перебрать типы в пакете и вызвать приведенное выше преобразование для каждого из них (т.е. учитывая тип T
, вернуть type_index(typeid(T))
. Я чувствую, что должен быть чистый способ сделать это, но не ясно, как это сделать). мне, как работать с механизмом вариативных шаблонов, чтобы это работало. Верна ли моя интуиция?