如何获取相对于运行时索引的类型?

时间:2011-05-13 18:38:54

标签: c++ boost metaprogramming boost-mpl

假设我有boost::mpl::list< A, B, C ...>

如何在运行时给出索引值时访问其中一种?它甚至可能吗?

1 个答案:

答案 0 :(得分:2)

http://www.boost.org/doc/libs/release/libs/mpl/doc/refmanual/for-each.html

你基本上必须迭代整个列表并引入某种条件: 例如:

struct F {
    void operator(T &t) {
        if (i_ == index) ...
        ++i;
    }
    int index = ...;
    int i_ = 0;
};
for_each< L >( F(index) );