gpt4 book ai didi

c++ - 迭代 boost::variant 中的类型

转载 作者:IT老高 更新时间:2023-10-28 23:13:27 25 4
gpt4 key购买 nike

我正在使用 boost 变体来保存一些生成的类型,现在我的代码生成器会创建一个带有类型的 header 和一个能够保存它们的变体。在初始化时,我想迭代变量中允许的类型,而不是变量当前持有的类型。

我可以使用变体来做到这一点吗?

最佳答案

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());

关于c++ - 迭代 boost::variant 中的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2167941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com