我正在使用boost變體來保存一些生成的類型,現在我的代碼生成器創建了一個包含類型和變量的頭文件。在初始化時,我想遍歷變體中的允許類型,而不是當前變體所持有的類型。遍歷boost :: variant類型
我可以使用變體嗎?
我正在使用boost變體來保存一些生成的類型,現在我的代碼生成器創建了一個包含類型和變量的頭文件。在初始化時,我想遍歷變體中的允許類型,而不是當前變體所持有的類型。遍歷boost :: variant類型
我可以使用變體嗎?
boost::variant
通過types
這是一個MPL列表公開它的類型。您可以使用mpl::for_each對MPL列表執行運行時操作:
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());
你是一個有用的傢伙。謝謝=] – taxilian 2011-01-04 05:42:03
可能需要'boost :: mpl :: make_identity <>'當一些類型不是默認可構造的。 – TemplateRex 2017-06-15 10:52:45
遍歷類型做什麼? – 2010-01-30 13:11:29
我需要填充一個地圖。 –
swarfrat
2010-01-30 14:03:11