Мне нужно построить кортеж из n типов. Эти n типов являются типами значений n других типов. Рассмотрим этот фрагмент:
#include <boost/hana.hpp>
namespace hana = boost::hana;
template<class... Types>
class CartesianProduct
{
public:
CartesianProduct(Types... args) : sets(args...) {}
hana::tuple<Types...> sets;
hana::tuple<Types...::value_type> combination; // does not work obviously... but wo can this be done?
};
Применение этого предназначено так: я передаю этому классу пакет параметров контейнеров, возможно, разных типов. Класс помещает эти контейнеры в кортеж sets
. В классе также есть поле combination
, которое представляет собой кортеж из такого количества элементов, сколько контейнеров было передано в класс. Но типы элементов — это типы значений различных контейнеров.
Затем класс предназначен для ленивого построения декартова произведения переданных ему контейнеров и сохранения текущей комбинации в combination
. Но как я могу на самом деле добраться до типов значений контейнеров в вариативном режиме?
value_type
? - person StoryTeller - Unslander Monica   schedule 14.06.2017cartesian_product
лениво само по себе. - person Louis Dionne   schedule 27.06.2017