Итерация по типам в повышении:: вариант

Я использую вариант повышения для содержания некоторых сгенерированных типов, прямо сейчас мой генератор кода создает заголовок с типами и вариантом, способным к содержанию их. Во время инициализации я хотел бы выполнить итерации по допустимым типам в варианте, не типам, которые вариант содержит в данный момент.

Я могу сделать это с вариантом?

12
задан swarfrat 30 January 2010 в 13:06
поделиться

1 ответ

Boost :: Вариант выставляет его типы через типы , который является списком MPL. Вы можете делать операции времени выполнения через списки MPL с использованием MPL :: for_each :

struct printer {
    template<class T> void operator()(T t) {
        std::cout << typeid(T).name() << std::endl;
    }
};

// ... 
typedef boost::variant<int, char> var;
boost::mpl::for_each<var::types>(printer());
20
ответ дан 2 December 2019 в 18:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: