Я ищу способ реализации посетителя типа через список типов c ++.Здесь я имел в виду тип посетителя, чтобы выполнить определенный оператор (например, sizeof) над типами в списке типов.
Концептуально, что я хочу сделать, это:
typedef TYPELIST_3(bool, int, double) tl;
size_t tl_size = TL_sum_size<tl>(); // 13 = 1+4+8
size_t tl_min_size = TL_min_size<tl>(); // 1
size_t tl_max_size = TL_max_size<tl>(); // 8
vector<size_t> tl_sizes = TL_list_size<tl>(); // {1, 4, 8}
TL_AddCounter<tl>(3); // Call AddCounter(3) for each type in typelist
Конечно, каждая функция должнабыть хранимым над набором текста.В примере используются sizeof и static void T::addCounter(int x)
в списке типов (чтобы отследить, сколько раз этот тип используется).В общем, я хочу выполнить любую произвольную «статическую» операцию над типом с произвольными параметрами.
Ну, во-первых, возможна ли какая-либо из вышеперечисленных функций?если да, как я могу это сделать?Я не уверен, как перебирать список типов.